Ámbito de los privilegios de objetos
Todos los objetos son globales (por ejemplo, base de datos, usuario o grupo) o locales (es decir, existen en una base de datos, como una tabla o una vista). Puede asignar privilegios de objeto para que se apliquen globalmente (a todos los objetos en todas las bases de datos) o localmente (a un solo objeto en una única base de datos).
El siguiente ejemplo se inicia como una definición local y pasa a una definición más general.
Si utiliza mandatos SQL para gestionar permisos de cuenta, la base de datos a la que está conectado tiene sentido cuando emite un mandato GRANT. Si está conectado a la base de datos del sistema (esta base de datos tiene el nombre SYSTEM), el privilegio se aplica a todas las bases de datos. Si está conectado a una base de datos específica, el privilegio solo se aplica a esa base de datos.
database.schema.objectdonde:- base de datos
- Nombre de base de datos específico o la palabra clave ALL para otorgar el privilegio a todas las bases de datos.
- esquema
- Nombre de esquema específico o la palabra clave ALL para todos los esquemas con el valor de base de datos especificado.
- objeto
- Clase de objeto, como TABLE, VIEW, etc., o un nombre de objeto específico.
MYDB.SCH1(USER1)=> GRANT LIST ON testdb TO user1;De manera similar, puede iniciar sesión en una base de datos a la que tenga acceso y otorgar el permiso utilizando un nombre completo:
DEV.TEST(USER2)=> GRANT LIST ON mydb.sch1.testdb TO user1;
MYDB.SCH1(USER1)=> GRANT SELECT ON TABLE TO user1;De manera similar, puede iniciar sesión en una base de datos a la que tenga acceso y otorgar el permiso utilizando un nombre completo:
DEV.TEST(USER2)=> GRANT SELECT ON MYDB.ALL.TABLE TO user1;
SYSTEM.ADMIN(ADMIN)=> GRANT SELECT ON TABLE TO user1;De manera similar, puede iniciar sesión en una base de datos a la que tenga acceso y otorgar el permiso utilizando un nombre completo:
DEV.TEST(USER2)=> GRANT SELECT ON ALL.ALL.TABLE TO user1;
- Privilegios otorgados sobre un determinado objeto en una base de datos concreta y un determinado esquema, para sistemas que admiten varios esquemas
- Privilegios otorgados sobre una clase de objeto en una base de datos concreta y un determinado esquema, para sistemas que admiten varios esquemas
- Privilegios otorgados sobre un determinado objeto en todos los esquemas de una determinada base de datos
- Privilegios otorgados sobre una clase de objeto en todos los esquemas de una determinada base de datos
- Privilegios otorgados sobre un objeto en la base de datos del sistema
- Privilegios otorgados sobre una clase de objeto en la base de datos del sistema
Puede asignar varios privilegios para el mismo objeto para el mismo usuario. El sistema Netezza Performance Server utiliza las reglas de precedencia para determinar qué privilegios utilizar. Por ejemplo, puede otorgar a los usuario privilegios a nivel global, pero los privilegios de usuario sobre un determinado objeto o a nivel de base de datos sustituirán los permisos globales. Por ejemplo, supongamos los tres mandatos GRANT siguientes:
system.admin(admin)=> GRANT SELECT,INSERT,UPDATE,DELETE,TRUNCATE ON
TABLE TO user1dev, introduzca:dev.schema(admin)=> GRANT SELECT,INSERT,UPDATE ON TABLE TO user1dev, introduzca:dev.schema(admin)=> GRANT SELECT, LOAD ON customer TO user1- Con el primer mandato GRANT, user1 tiene permisos globales para SELECT, INSERT, UPDATE, DELETE o TRUNCATE en cualquier tabla de base de datos.
- El segundo mandato GRANT restringe los permisos del user1 específicamente en la base de datos
dev. Cuando el user1 se conecta adev, el user1 solo puede ejecutar operaciones SELECT, INSERT o UPDATE en las tablas dentro de esa base de datos. - El tercer mandato GRANT sustituye los privilegios del user1 en la tabla de clientes dentro de la base de datos
dev. Como resultado de este mandato, las únicas acciones que el user1 puede realizar en la tabla de clientes de la base de datosdevson SELECT y LOAD.
| Mandato | Descripción |
|---|---|
| \dg | Lista grupos (grupos de usuarios y de recursos) excepto _ADMIN_. |
| \dG | Lista grupos de usuarios y sus miembros. |
| \dp <user> | Lista los privilegios otorgados a un usuario directamente o por medio de la pertenencia a un grupo de usuarios. |
| \dpg <group> | Lista los privilegios otorgados a un grupo de usuarios. |
| \dpu <user> | Lista los privilegios otorgados a un usuario directamente y no por su pertenencia a un grupo de usuarios. |
| \du | Lista usuarios. |
| \dU | Lista los usuarios que son miembros de al menos un grupo de usuarios y los grupos de los que es miembro cada uno. |