INFORMATION_SCHEMA.TABLE_PRIVILEGES
La Vista di sistema INFORMATION_SCHEMA.TABLE_PRIVILEGES ritorna una riga per ogni diritto assegnato a/assegnato da l'utente connesso in quel momento.
Contiene i campi
GRANTOR (nvarchar(128), NULL)
GRANTEE (nvarchar(128), NULL)
TABLE_CATALOG (nvarchar(128), NULL)
TABLE_SCHEMA (nvarchar(128), NULL)
TABLE_NAME (sysname(nvarchar(128)), NOT NULL)
PRIVILEGE_TYPE (varchar(10), NULL)
IS_GRANTABLE (varchar(3), NULL)
GRANTOR Contiene il nome dell'utente che ha assegnato il diritto
GRANTEE Contiene il nome dell'utente a cui è stato assegnato il diritto
TABLE_CATALOG Contiene il nome del Database in cui è contenuta la Tabella oggetto del diritto
TABLE_SCHEMA Contiene il nome dello Schema in cui è contenuta la Tabella oggetto del diritto
TABLE_NAME Contiene il nome della Tabella oggetto del diritto
PRIVILEGE_TYPE Contiene il nome del Tipo di diritto
IS_GRANTABLE Specifica se l'utente nel campo GRANTEE può a sua volta assegnare lo stesso diritto ad altri.
Sul mio Database di Prova
SELECT * FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES
Il Result set è
GRANTOR GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
(0 row(s) affected)
CREATE LOGIN Luca With PASSWORD = 'P@$$word' , Default_Database = Prova
GO
CREATE USER Luca FROM LOGIN
Luca
GO
GRANT SELECT ON Impiegato To Luca
GRANT UPDATE ON Impiegato To Luca
GO
SELECT * FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES
GO
GRANTOR GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
dbo Luca prova dbo Impiegato SELECT NO
dbo Luca prova dbo Impiegato UPDATE NO
(2 row(s) affected)
lunedì, 11 dic 2006 Ore. 09.51