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 o una geodatabase corporativa, debe otorgarles el privilegio para hacerlo.

Explorar:
Para las bases de datos 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 la tabla o clase de entidad se crea mediante las herramientas de los clientes de ArcGIS.

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 privilegios de selección, 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 los datos 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 Python.
  • Para revocar privilegios se requiere un bloqueo exclusivo en el dataset. Si hay alguien conectado al dataset, no podrá revocar privilegios.

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

  • 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 clases de entidad de destino y origen se encuentran en el mismo dataset de entidad, tienen el mismo conjunto de privilegios ya que se otorgan los privilegios a nivel de dataset de entidad. 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 muchos a muchos, los privilegios se propagan automáticamente a la tabla intermedia cuando usted 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 a este conectarse al dataset y alterar las entidades existentes, pero no le permite agregar nuevas entidades o 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 y 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

  1. Conéctese a la base de datos o geodatabase 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 desea conceder 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 en la base de datos, puede elegir los usuarios o roles de la base de datos que desea agregar de la lista al desactivar la casilla al lado de sus nombres. 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 desea otorgarle privilegios.
    3. Haga clic en Aceptar para cerrar el cuadro de diálogo Usuario/Rol.
    4. Marque los cuadros de privilegios que desea que cada nuevo usuario o rol tenga y a continuación, 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. La herramienta Cambiar privilegios no muestra los privilegios que tiene actualmente el usuario sobre los datasets. Los privilegios de inserción, actualización y eliminación se deben conceder en conjunto, no de forma individual.

  1. Conéctese a la geodatabase o la base de datos 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 cuyos privilegios quiera cambiar.
  4. Escriba el nombre del usuario o grupo cuyos privilegios desea cambiar.
  5. Utilice las listas desplegables Ver y Editar para seleccionar los privilegios que quiera otorgar al usuario o grupo especificado.

    Para otorgar privilegios de edición, también deben otorgarse privilegios de vista.

  6. Haga clic en Aceptar para ejecutar la herramienta.

Utilizar una secuencia de comandos de Python

Para utilizar una secuencia de comandos de Python para otorgar o revocar privilegios sobre un dataset de su propiedad, puede emplear la función ChangePrivileges_management.

  1. Utilice la función CreateDatabaseConnection_management para crear una conexión de base de datos. Debe conectarse como propietario de los datasets y guardar el nombre de usuario con el archivo.
  2. Ejecute la función ChangePrivileges_management.