user permissions for tables

  • how can we find out all tables which as select permissions for a particular user,

    I wanna load all the tables, which a particular user has select permissions

    can any body help me out

  • Isn't there a 'security' folder in EM that lists all the access rights for all users?

    If riding in a plane is flying, then riding in a boat must be swimming. To experience the element, get out of the vehicle. Skydive!


    If riding in a plane is flying, then riding in a boat must be swimming. To experience the element, get out of the vehicle. Skydive!

  • Hi anilkumarsh,

    quote:


    how can we find out all tables which as select permissions for a particular user,

    I wanna load all the tables, which a particular user has select permissions

    can any body help me out


    what about EXEC sp_helprotect NULL, 'a5xo3z1'?

    Details explained in BOL

    Cheers,

    Frank

    --
    Frank Kalis
    Microsoft SQL Server MVP
    Webmaster: http://www.insidesql.org/blogs
    My blog: http://www.insidesql.org/blogs/frankkalis/[/url]

  • I wanna support Oracle,MSSQL,Sybase , and i wanna to execute query or stored procedure to get the tables so that i can all the tables, i am writing a query builder , it is here where i wanna to use it

  • quote:


    I wanna support Oracle,MSSQL,Sybase , and i wanna to execute query or stored procedure to get the tables so that i can all the tables, i am writing a query builder , it is here where i wanna to use it


    well, in this case what about

    CREATE PROCEDURE sp_Permissions

    AS

    SET NOCOUNT ON

    IF EXISTS (SELECT * FROM tempdb..sysobjects WHERE [name] LIKE '#perm%')

    DROP TABLE #perm

    CREATE TABLE #perm (

    [qid] [int] IDENTITY (1,1) NOT NULL,

    [int] NOT NULL,

    [inherfrom] [int] NOT NULL,

    PRIMARY KEY (

    ,

    [inherfrom]

    )

    )

    INSERT INTO #perm (, [inherfrom]) SELECT [uid], [uid] FROM sysusers WHERE issqlrole = 0 AND hasdbaccess = 1 and uid != 1

    WHILE EXISTS (SELECT

    oT.,

    groupuid

    FROM

    sysmembers

    INNER JOIN

    #perm oT

    ON

    oT.[inherfrom] = sysmembers.memberuid

    WHERE

    groupuid NOT IN (

    SELECT

    inherfrom

    FROM

    #perm iT

    WHERE

    iT. = oT.

    )

    )

    BEGIN

    INSERT INTO #perm (, [inherfrom])

    SELECT

    oT.,

    groupuid

    FROM

    sysmembers

    INNER JOIN

    #perm oT

    ON

    oT.[inherfrom] = sysmembers.memberuid

    WHERE

    groupuid NOT IN (

    SELECT

    inherfrom

    FROM

    #perm iT

    WHERE

    iT. = oT.

    )

    END

    SELECT

    u2.[name] AS UserName,

    u1.[name] AS InheritesVia,

    CASE xtype

    WHEN 'U' THEN 'Table'

    WHEN 'V' THEN 'View'

    WHEN 'S' THEN 'System'

    WHEN 'P' THEN 'Procedure'

    WHEN 'FN' THEN 'Function'

    END AS ObjectType,

    sysobjects.[name] AS Object,

    CASE WHEN xtype IN ('U','V','S') THEN

    CASE

    WHEN (actadd & 1) = 1 THEN 'Granted'

    WHEN (actmod & 1) = 1 THEN 'Denied'

    ELSE 'Revoked'

    END

    ELSE ''

    END AS [SELECT],

    CASE WHEN xtype IN ('U','V','S') THEN

    CASE

    WHEN (actadd & 8) = 8 THEN 'Granted'

    WHEN (actmod & 8) = 8 THEN 'Denied'

    ELSE 'Revoked'

    END

    ELSE ''

    END AS [INSERT],

    CASE WHEN xtype IN ('U','V','S') THEN

    CASE

    WHEN (actadd & 2) = 2 THEN 'Granted'

    WHEN (actmod & 2) = 2 THEN 'Denied'

    ELSE 'Revoked'

    END

    ELSE ''

    END AS [UPDATE],

    CASE WHEN xtype IN ('U','V','S') THEN

    CASE

    WHEN (actadd & 16) = 16 THEN 'Granted'

    WHEN (actmod & 16) = 16 THEN 'Denied'

    ELSE 'Revoked'

    END

    ELSE ''

    END AS [DELETE],

    CASE WHEN xtype IN ('P','FN') THEN

    CASE

    WHEN (actadd & 32) = 32 THEN 'Granted'

    WHEN (actmod & 32) = 32 THEN 'Denied'

    ELSE 'Revoked'

    END

    ELSE ''

    END AS [EXEC],

    CASE WHEN xtype IN ('U','V','S') THEN

    CASE

    WHEN (actadd & 4) = 4 THEN 'Granted'

    WHEN (actmod & 4) = 4 THEN 'Denied'

    ELSE 'Revoked'

    END

    ELSE ''

    END AS [DRI]

    FROM

    syspermissions

    INNER JOIN

    #perm

    INNER JOIN

    sysusers u1

    ON

    u1.uid = [inherfrom]

    INNER JOIN

    sysusers u2

    ON

    u2.uid =

    ON

    [inherfrom] = grantee

    INNER JOIN

    sysobjects

    ON

    GO

    sysobjects.[id] = syspermissions.[id]

    ORDER BY

    [UserName],

    [ObjectType],

    [Object]

    DROP TABLE #perm

    Maybe someone else knows if this works in the other RDBMS you've mentioned?

    Cheers,

    Frank

    --
    Frank Kalis
    Microsoft SQL Server MVP
    Webmaster: http://www.insidesql.org/blogs
    My blog: http://www.insidesql.org/blogs/frankkalis/[/url]

Viewing 5 posts - 1 through 4 (of 4 total)

You must be logged in to reply to this topic. Login to reply