Estoy confundido en el permiso, privilegios en el SQL Oracle Developer. El usuario creado puede acceder a todas las tablas de esquema / usuario. Quiero restringir el acceso de usuarios específicos en la base de datos (ALTER, DROP, UPDATE, etc.) a sus propias tablas solamente. ¿Alguien puede especificarme cómo realizar esta tarea?
Me refiero a qué privilegios elegir entre los privilegios del sistema para que el usuario acceda solo a sus propias tablas. Gracias
permissions
privileges
database-administration
AbdulAziz
fuente
fuente
Respuestas:
Mientras no otorgue explícitamente un permiso, el usuario no lo tendrá. Solo usemos un pequeño excursus:
Ahora ese usuario existe, pero ni siquiera puede iniciar sesión en la base de datos. Todavía no tiene permisos. Solo después
ese usuario puede iniciar sesión, pero no más. Para poder hacer cosas dentro de su propio esquema, generalmente se conceden cosas como
Ahora puede hacer cosas, pero solo en su propio esquema. También puede insertar, actualizar, eliminar, pero aún está restringido a sus propios objetos. Para manipular (o incluso ver) los datos de otros usuarios, el otro usuario debe otorgar esto explícitamente:
o el DBA le otorga permisos globales:
Por lo tanto, tendrá que verificar qué permisos tiene el usuario. Como hay muchos permisos posibles, mi respuesta puede ser demasiado larga, pero especialmente tenga cuidado con los permisos, incluida la
ANY
palabra clave (como en mi último ejemplo). Compruebe también los posibles roles otorgados a ese usuario, que pueden incluir dichos permisos. Al iniciar sesión como sysdba, puede verificarlos, por ejemplo, con la siguiente consulta:(tenga en cuenta el nombre de usuario MAYÚSCULAS aquí - que es cómo Oracle almacena internamente, y es sensible a mayúsculas). Para los primeros privilegios (directos) mencionados, esto sería:
Una vez que haya descubierto los privilegios / roles otorgados a ese usuario especial que no debería tener, puede quitárselos, por ejemplo:
fuente