none
Ruoli di un utente RRS feed

  • Domanda

  • Buongiorno,

    ho un utente con autorizzazioni in lettura per tutto il db, tranne che per alcune tabelle alla quale è stato assegnata l'autorizzazione in scrittura. E' possibile cercare solo le tabelle a cui è assegnata l'autorizzazione di scrittura?

    Grazie

    lunedì 22 giugno 2015 10:23

Risposte

  • Ciao,

    puoi controllare con la seguente query:

    SELECT
    		schema_name						= s.name
    	  , principal_name						= dp.NAME 
    	  , principal_type_desc					= dp.type_desc 
    	  , [object_name]						= COALESCE(o.NAME, T.NAME)
    	  , p.permission_name
    	  , permission_state_desc				= p.state_desc
    	FROM
    		sys.database_permissions p
    		LEFT JOIN sys.all_objects o ON p.major_id = o.[object_id]
    		LEFT JOIN sys.types		T	ON T.user_type_id = p.major_id	
    		JOIN sys.database_principals dp ON p.grantee_principal_id = dp.principal_id
    		JOIN sys.schemas			S ON o.schema_id = s.schema_id
    	WHERE
    		dp.name NOT IN ('public', 'guest', 'cdc', 'dbo')
    		AND dp.type_desc = 'SQL_USER'
    		AND dp.name = 'tuo_user'
    		AND p.permission_name IN ('INSERT', 'UPDATE', 'DELETE')


    Alessandro Alpi - SQL Server MVP

    lunedì 22 giugno 2015 13:20
    Moderatore

Tutte le risposte

  • Ciao,

    puoi controllare con la seguente query:

    SELECT
    		schema_name						= s.name
    	  , principal_name						= dp.NAME 
    	  , principal_type_desc					= dp.type_desc 
    	  , [object_name]						= COALESCE(o.NAME, T.NAME)
    	  , p.permission_name
    	  , permission_state_desc				= p.state_desc
    	FROM
    		sys.database_permissions p
    		LEFT JOIN sys.all_objects o ON p.major_id = o.[object_id]
    		LEFT JOIN sys.types		T	ON T.user_type_id = p.major_id	
    		JOIN sys.database_principals dp ON p.grantee_principal_id = dp.principal_id
    		JOIN sys.schemas			S ON o.schema_id = s.schema_id
    	WHERE
    		dp.name NOT IN ('public', 'guest', 'cdc', 'dbo')
    		AND dp.type_desc = 'SQL_USER'
    		AND dp.name = 'tuo_user'
    		AND p.permission_name IN ('INSERT', 'UPDATE', 'DELETE')


    Alessandro Alpi - SQL Server MVP

    lunedì 22 giugno 2015 13:20
    Moderatore
  • Perfetto, grazie!
    lunedì 22 giugno 2015 14:45