¿Puede alguien decirme cómo mostrar todos los privilegios/reglas de un usuario específico en la consola sql?¿Cómo se muestran todos los privilegios de un usuario en Oracle?
Respuesta
Puede probar estas vistas a continuación.
SELECT * FROM USER_SYS_PRIVS;
SELECT * FROM USER_TAB_PRIVS;
SELECT * FROM USER_ROLE_PRIVS;
DBA y otros usuarios avanzados pueden encontrar los privilegios concedidos a otros usuarios con las versiones DBA_
de estos mismos puntos de vista. Están cubiertos en el documentation.
Esas vistas solo muestran los privilegios concedidos directamente al usuario. Encontrar todos los los privilegios, incluidas las concedidas indirectamente a través de los roles, requiere sentencias SQL recursivas más complicados:
select * from dba_role_privs connect by prior granted_role = grantee start with grantee = '&USER' order by 1,2,3;
select * from dba_sys_privs where grantee = '&USER' or grantee in (select granted_role from dba_role_privs connect by prior granted_role = grantee start with grantee = '&USER') order by 1,2,3;
select * from dba_tab_privs where grantee = '&USER' or grantee in (select granted_role from dba_role_privs connect by prior granted_role = grantee start with grantee = '&USER') order by 1,2,3,4;
Hay varios guiones que flotan alrededor que va a hacer que dependiendo de lo loco que desea obtener. Yo personalmente usaría el find_all_privs script de Pete Finnigan.
Si quiere escribirlo usted mismo, la consulta se vuelve bastante desafiante. Los usuarios pueden tener privilegios de sistema que son visibles en DBA_SYS_PRIVS
. Se les pueden otorgar privilegios de objeto que son visibles en DBA_TAB_PRIVS
. Y se les pueden otorgar roles visibles en DBA_ROLE_PRIVS
(los roles pueden ser predeterminados o no predeterminados y también pueden requerir una contraseña, por lo que el hecho de que se le haya otorgado un rol no significa que el usuario pueda usar los privilegios necesariamente). adquirió el papel por defecto). Pero a esos roles se les pueden otorgar privilegios de sistema, privilegios de objeto y roles adicionales que se pueden ver mirando ROLE_SYS_PRIVS
, ROLE_TAB_PRIVS
y ROLE_ROLE_PRIVS
. El guión de Pete revisa esas relaciones para mostrar todos los privilegios que terminan fluyendo a un usuario.
Excepto si no tiene los roles 'DBA' o' SYS', y solo quiere encontrar los privilegios de su propia cuenta. – vapcguy
Puede utilizar a continuación el código para obtener toda la lista de privilegios de todos los usuarios.
select * from dba_sys_privs
- 1. ¿Cómo se muestran los campos en una tabla en Oracle?
- 2. Concesión de privilegios de DBA al usuario en Oracle
- 3. VS2010 - Los guiones se muestran en todos los espacios
- 4. Cómo clonar usuario en Oracle
- 5. Cómo otorgar todos los privilegios en vistas a usuarios arbitrarios
- 6. Perdí todos los privilegios en MYSQL
- 7. ¿Cómo recuperar todos los privilegios en el usuario raíz en MySQL?
- 8. consulta de Oracle para buscar privilegios en un procedimiento almacenado
- 9. Revocar todos los privilegios para todos los usuarios en una base de datos MySQL
- 10. ¿Cómo se muestran todos los tipos de un objeto (en Scala)?
- 11. todos los usuarios mesas/secuencias en Oracle
- 12. cómo otorgar privilegios de usuario en un esquema específico?
- 13. Concesión de privilegios de "Crear directorio" en Oracle
- 14. ¿Cómo se realiza la manipulación de archivos/directorios teniendo en cuenta los privilegios del usuario?
- 15. Oracle 11g declaraciones para crear nuevos usuarios y otorgar privilegios?
- 16. ¿Cómo se muestran los índices de NA?
- 17. PostgreSQL - cómo colocar rápidamente un usuario con privilegios existentes
- 18. En Mongo, ¿cómo se muestran los índices de una colección?
- 19. ¿Cómo se usan los controles de usuario en asp.net mvc que muestran una "isla" de datos?
- 20. Autenticación de CodeIgniter + privilegios de usuario
- 21. ¿Cómo se elevan los privilegios solo cuando es necesario?
- 22. Cómo borrar todos los elementos en caché en Oracle
- 23. ¿Cómo cierro todos los almacenamientos intermedios que no se muestran en una ventana en vim?
- 24. MySQL - Los caracteres rusos se muestran correctamente
- 25. ¿Cómo se muestran los mensajes de error personalizados en ScalaTest?
- 26. ¿Cómo se muestran los resultados de phpcs en VIM?
- 27. ¿Cómo se muestran los valores de hashmap en jsf?
- 28. ¿Cómo de-elevar los privilegios de un proceso hijo
- 29. ¿Cómo se muestran los errores de validación de un modelo asociado en Rails?
- 30. ¿Cómo ver privilegios de usuario usando windows cmd?
El guión es impresionante simplemente echamos un vistazo –
Necesita privilegios de que el paquete UTL_FILE o de lo contrario se produce un error cuando se ejecuta el guión de Pete Finnigan: "identificador 'UTL_FILE' deben ser declarados". Puede conectarse como sys con roll sysdba a través de SQL Developer y luego funcionará o se otorgará privilegios de ejecución para este paquete usando: grant execute en UTL_FILE al; –
Jan
Y para aquellos de nosotros sin privilegios 'SYS' y solo queremos ver los privilegios de nuestra propia cuenta, el script es completamente inútil. No tengo acceso a 'UTL_FILE' ni a' DBA_SYS_PRIVS' ni a las otras áreas 'DBA' y' SYS' que examina el script. – vapcguy