Otorgar y revocar privilegios sobre datasets en bases de datos y geodatabases corporativas

Disponible con una licencia Standard o Advanced.

Para permitir que otros usuarios de la base de datos vean o modifiquen el contenido de cualquier dato en una base de datos relacional o una geodatabase corporativa, debe otorgarles los privilegios para hacerlo.

Explorar:

Para las bases de datos relacionales y las geodatabases corporativas, el propietario de los datos lo determina el usuario especificado en la conexión de base de datos que se utiliza cuando se crea el dataset mediante las herramientas de los clientes de ArcGIS. Un dataset es cualquier clase de entidad, tabla o vista de una base de datos o geodatabase corporativa, así como los datasets de entidades de una geodatabase corporativa.

Como propietario del dataset, puede utilizar el cuadro de diálogo Privilegios, la herramienta de geoprocesamiento Cambiar privilegios o la función ChangePrivileges_management en una secuencia de comandos de Python para especificar los privilegios que tiene un usuario o un grupo sobre un dataset concreto.

Puede otorgar el privilegio para seleccionar datos, es decir, que el usuario pueda leer y seleccionar el contenido de un dataset, pero no modificarlo. También puede otorgar privilegios de actualización, inserción y eliminación, lo que permite al usuario modificar el contenido de un dataset.

Las siguientes reglas se aplican a la concesión y revocación de privilegios sobre un dataset de una base de datos o una geodatabase corporativa en ArcGIS:

  • Solo el propietario de la tabla puede modificar los privilegios del dataset.
  • Solo el propietario de la tabla puede eliminar el dataset o modificar su definición de esquema; por lo tanto, aun cuando se han concedido a otro usuario privilegios de insertar, actualizar y eliminar en un dataset, ese usuario no puede modificar el esquema.
  • Al otorgar privilegios a un usuario para insertar, actualizar o eliminar, también debe otorgarle el privilegio para seleccionar. Los usuarios deben poder leer el dataset para poder editarlo.
  • Los roles dbo y db_owner no aparecen en la lista de Usuario/Rol del cuadro de diálogo Privilegios para las bases de datos de Microsoft SQL Server. A estos usuarios se les conceden automáticamente privilegios en todos los datos de la base de datos. Los privilegios varían por rol y no se pueden revocar.
  • Los grupos o roles de inicio de sesión de PostgreSQL a los que se les ha otorgado el estatus de superusuarios en la base de datos no aparecen en la lista Usuario/Rol del cuadro de diálogo Privilegios. Estos usuarios automáticamente tienen privilegios completos sobre todos los datos y no puede revocar estos privilegios.
  • Solo puede modificar los privilegios del usuario en un dataset en cualquier momento por medio del cuadro de diálogo Privilegios. Para modificar los privilegios sobre varios datasets al mismo tiempo, utilice la herramienta de geoprocesamiento Cambiar privilegios o la función de ArcPy.
  • Para revocar privilegios se requiere un bloqueo exclusivo en el dataset. Si hay alguien conectado al dataset, no podrá revocar privilegios.
  • No puede utilizar ArcGIS para conceder o revocar privilegios para tablas en almacenes de datos en la nube.

Las siguientes normas afectan solamente a la concesión y revocación de privilegios sobre datasets de una geodatabase corporativa:

  • Cuando el dataset se encuentre en una geodatabase corporativa, utilice las herramientas de ArcGIS que se indican a continuación para conceder y revocar privilegios. De este modo, se garantiza que los usuarios tengan acceso a todas las tablas necesarias del sistema de geodatabase asociadas al dataset.
  • Todas las clases de entidad de un dataset de entidades deben tener aplicados los mismos privilegios.
  • Cuando se otorgan privilegios a una tabla o clase de entidad que participa en una clase de relación, los privilegios deben otorgarse tanto a las clases de destino como a las de origen. Si las ediciones realizadas en la clase de entidad de origen afectarán a la clase de entidad de destino, deberá conceder privilegios de actualización, inserción o eliminación en ambas clases de entidad.

    Si las clases de entidad de origen y destino se encuentran en el mismo dataset de entidades, tendrán el mismo conjunto de privilegios, ya que estos se conceden en el nivel de dataset de entidades. Sin embargo, cuando la clase de origen o destino no está en el mismo dataset de entidad, debe asegurarse de otorgarle los privilegios apropiados tanto a las clases de origen como de destino. Si la clase de relación tiene atributos o tiene cardinalidad de muchos a muchos, los privilegios se propagan automáticamente a la tabla intermedia (no a la clase de destino) cuando asigna privilegios a la clase de origen.

  • Si el dataset no está registrado como versionado, puede otorgar y revocar individualmente los privilegios de actualización, inserción y eliminación mediante el cuadro de diálogo Privilegios. Por ejemplo, puede otorgarle a un usuario privilegios para seleccionar y actualizar, lo que le permite abrir el dataset y modificar las entidades existentes, pero no le permite agregar nuevas entidades ni eliminar entidades existentes.
  • Si el dataset se registra para el versionado tradicional, los privilegios que le permiten a un usuario modificar un dataset (actualizar, insertar y eliminar) deben otorgarse y revocarse como grupo.
  • Si el dataset se registra para el versionado tradicional, el administrador de la geodatabase debe tener todos los privilegios sobre el mismo. Por lo tanto, no puede revocarle los privilegios desde el administrador de la geodatabase en estos datasets.
  • Los datasets registrados para el versionado en rama solo se pueden editar a través de capas de entidades web y el acceso a los datos se controla mediante la configuración de la capa de entidades web. Dado que solo el propietario del dataset puede publicar los datos versionados en rama, no hay motivo para otorgar privilegios sobre los datos de la geodatabase a otros usuarios de la base de datos.

Utilice uno de los métodos siguientes para otorgar o revocar privilegios sobre datasets de su propiedad:

  • Cuadro de diálogo Privilegios: el cuadro de diálogo Privilegios permite consultar los privilegios que tiene un usuario o un grupo sobre un dataset concreto. También puede conceder privilegios sobre el dataset a más de un usuario o grupo a la vez.
  • Herramienta Cambiar privilegios: la herramienta Cambiar privilegios permite otorgar privilegios sobre varios datasets a un usuario o grupo.
  • Secuencia de comandos de Python: puede ejecutar una secuencia de comandos de Python desde equipos donde esté instalado ArcGIS Server. Se pueden modificar los privilegios de varios datasets.

Utilizar el cuadro de diálogo Privilegios

Siga estos pasos para otorgar o revocar privilegios mediante el cuadro de diálogo Privilegios de ArcGIS Pro:

  1. Conéctese a la base de datos relacional o a la geodatabase corporativa que contiene los datos de su propiedad cuyos privilegios quiere otorgar o revocar.
  2. Haga clic con el botón derecho en el dataset y haga clic en Privilegios.
  3. Si el usuario o rol cuyos privilegios desea cambiar está en la lista, active o desactive las casillas de los privilegios que va a otorgar o revocar y haga clic en Aceptar para aplicar los cambios.
    Nota:

    Si desactivó todas las casillas de privilegios, se eliminará de la lista al usuario o rol.

  4. Si el usuario o rol no está en la lista, haga lo siguiente:
    1. Haga clic en Agregar usuario para abrir el cuadro de diálogo Usuario/Rol.
    2. Si tiene privilegios en la base de datos para ver todos los usuarios y roles de esta, puede marcar la casilla de verificación de usuarios o roles de la base de datos situada junto al nombre del usuario o rol para agregarlo. En caso contrario, escriba el nombre del usuario de la base de datos, rol de la base de datos, inicio de sesión del sistema operativo o grupo de Windows al que otorgará privilegios.
    3. Haga clic en Aceptar para cerrar el cuadro de diálogo Usuario/Rol.
    4. Marque las casillas de los privilegios requeridos para cada nuevo usuario o rol y haga clic en Aceptar.

Utilizar la herramienta Cambiar privilegios

Puede utilizar la herramienta Cambiar privilegios para otorgar y revocar privilegios sobre datasets de su propiedad. La herramienta está en el conjunto de herramientas Administración de geodatabase de la caja de herramientas Administración de datos.

Puede cambiar los privilegios de un usuario o grupo sobre varios datasets al mismo tiempo con esta herramienta. Se otorgará el mismo privilegio a todos los datasets especificados.

La herramienta Cambiar privilegios no muestra los privilegios que tiene actualmente el usuario sobre los datasets. Además, los privilegios de inserción, actualización y eliminación deben concederse como un conjunto; no pueden concederse individualmente.

  1. Conéctese a la geodatabase corporativa o a la base de datos relacional como propietario de los datasets cuyos privilegios quiera otorgar o revocar.
  2. Abra la herramienta Cambiar privilegios
  3. Desplácese hasta la conexión de base de datos y elija los datasets.
  4. Escriba el nombre del usuario o grupo cuyos privilegios de datasets va a cambiar.
  5. Utilice las listas desplegables Ver y Editar para seleccionar los privilegios que otorgará al usuario o grupo especificado.

    Cuando elige Editar, el privilegio Ver también se debe otorgar.

  6. Haga clic en Aceptar para ejecutar la herramienta.

Utilizar una secuencia de comandos de Python

Para utilizar un script de Python para otorgar o revocar privilegios sobre datasets de su propiedad, use la función ChangePrivileges_management.

  1. Cree una conexión de base de datos (archivo .sde) con la función CreateDatabaseConnection_management.

    Debe conectarse como propietario de los datasets y guardar el nombre de usuario con el archivo.

  2. Ejecute la función ChangePrivileges_management.