4D v14

GRANT

Inicio

 
4D v14
GRANT

GRANT  


 

 

 GRANT[READ | READ_WRITE | ALL] ON sql_name TO sql_name

El comando GRANT permite definir los derechos de acceso asociados al esquema nom_sql (primer parámetro). Estos derechos se asignarán al grupo de usuarios 4D designados por el segundo parámetro nom_sql.

Las palabras claves READ, READ_WRITE y ALL permiten definir los tipos de acceso autorizados para la tabla:

  • READ establece el modo de acceso de sólo lectura (datos). Por defecto: <Everybody>
  • READ_WRITE establece el modo de acceso lectura/escritura (datos).Por defecto: <Everybody>
  • ALL establece el modo de acceso completo (datos y estructura). Por defecto: <Nobody>

Note que cada tipo de acceso está definido independientemente de los otros. En particular, si asigna sólo los derechos READ a un grupo, esto no tendrá ningún efecto ya que el grupo como también los otros continuarán beneficiándose del acceso READ_WRITE (asignado a todos los grupos por defecto). Para definir el acceso READ, debe llamar dos veces el comando GRANT (ver ejemplo 2).

El control de acceso sólo aplica a las conexiones externas. El código SQL ejecutado al interior de 4D vía las etiquetas Begin SQL/End SQL o los comandos tales como SQL EXECUTE tiene acceso total.

Nota de compatibilidad: durante la conversión de una base anterior a la versión 11.3 o superior, los derechos de acceso globales (tales como los definidos en la página SQL de las Preferencias de la aplicación) se transfieren al esquema por defecto.

El segundo parámetro nom_sql debe contener el nombre del grupo de usuarios 4D al que desea asignar derechos de acceso al esquema. Este grupo debe existir en la base 4D.

Nota: 4D permite definir los nombres de grupos incluyendo espacios y/o caracteres acentuados que no son aceptados por el estándar SQL. En este caso, debe poner el nombre entre los caracteres [ y ]. Por ejemplo: GRANT READ ON [mi esquema] TO [los administradores]

Sólo el Diseñador y el Administrador de la base pueden modificar los esquemas.

4D garantiza el principio de integridad referencial independientemente de los derechos de acceso. Por ejemplo, supongamos que tiene dos tablas, Tabla1 y Tabla2, conectadas por una relación de tipo Muchos a Uno (Tabla2 -> Tabla1). Tabla1 pertenece al esquema S1 y Tabla2 al esquema S2. Un usuario que tenga derechos de acceso al esquema S1 pero no al S2 puede eliminar los registros en la Tabla1. En este caso, con el fin de respetar los principios de integridad referencial, todos los registros de Tabla2 que están relacionados con los registros eliminados de la Tabla1 también se eliminarán.

Usted quiere autorizar el acceso en lectura escritura de datos del esquema MiEsquema1 al grupo "Power_Users":

GRANT READ_WRITE ON MiEsquema1 TO POWER_USERS

Usted quiere autorizar un acceso en lectura únicamente al grupo "Readers". Este caso requiere asignar al menos un grupo con derechos READ_WRITE (aquí "Admins") de manera que ya no se asigna a todos los grupos por defecto:

GRANT READ ON MySchema2 TO Readers /*Asignación del acceso en lectura únicamente */
GRANT READ_WRITE ON MySchema2 TO Admins /*Detener el acceso a todos en lectura escritura*/

 
PROPIEDADES 

Producto: 4D
Tema: Comandos SQL

 
VER TAMBIÉN 

ALTER SCHEMA
CREATE SCHEMA
REVOKE

 
ARTICLE USAGE

Manual de SQL ( 4D v11 SQL Release 4 )
Manual de SQL ( 4D v14)
Manual de SQL ( 4D v12.1)
Manual de SQL ( 4D v13.4)
Manual de SQL ( 4D v14 R2)
Manual de SQL ( 4D v14 R3)
Manual de SQL ( 4D v14 R4)