Client is asking for a an audit of users and permissions on 2 of their databases. there are 447 items within and I'm looking for a way to access user/privilege information via a script to generate a report.
For Enterprise Geodatabases on Oracle / SQL Server / PostgreSQL use the RDBMS Views to list the permissions granted for each user that needs to be audited, an experienced Database Administrator can create the report you are looking for very easy. For more information search the RDBMS documentation. I hope this helps.
--ORACLE-- Permissions Audit Example:
--ROLES--
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'SDE';
--SYS PRIVILEGES--SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'SDE';
--GEODATABASE USERS--
SELECT DISTINCT(OWNER) FROM SDE.TABLE_REGISTRY ORDER BY OWNER;
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE IN (SELECT DISTINCT(OWNER) FROM SDE.TABLE_REGISTRY) ORDER BY 1,2;
--SYS PRIVILEGES--SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE IN (SELECT DISTINCT(OWNER) FROM SDE.TABLE_REGISTRY) ORDER BY 1,2;
--OBJECT PRIVILEGES--
SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE IN (SELECT DISTINCT(OWNER) FROM SDE.TABLE_REGISTRY) ORDER BY 1,2;
--ROLE PRIVILEGES
SELECT * FROM ROLE_TAB_PRIVS WHERE OWNER IN (SELECT DISTINCT(OWNER) FROM SDE.TABLE_REGISTRY) ORDER BY 1,2;
--ROLE SYS PRIVILEGES
SELECT * FROM ROLE_SYS_PRIVSWHERE ROLE IN(SELECT DISTINCT(ROLE) FROM ROLE_TAB_PRIVS WHERE OWNER IN (SELECT DISTINCT(OWNER) FROM SDE.TABLE_REGISTRY))ORDER BY 1,2;
SELECT * FROM ROLE_SYS_PRIVS ORDER BY 1,2;
I hope this helps with the Permissions Audit.
This will give you the typical esri permission by user / object (leave out the where clause if you want everything)
SELECT dp.NAME AS principal_name,dp.TYPE_DESC AS principal_type_desc,o.NAME AS object_name,p.PERMISSION_NAME,p.STATE_DESC AS permission_state_descFROM sys.database_permissions pLEFT OUTER JOIN sys.all_objects oON p.MAJOR_ID = o.OBJECT_IDINNER JOIN sys.database_principals dpON p.GRANTEE_PRINCIPAL_ID = dp.PRINCIPAL_IDwhere permission_name in ('select', 'delete', 'update', 'insert')order by principal_name
Ok, thank you. I'll reach out to our DBA.
Los miembros registrados pueden publicar, seguir actualizaciones y más. ¿Nuevo aquí? Regístrate gratis.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.