Disponible con una licencia Standard o Advanced.
Si desea permitir que otros usuarios de la base de datos vean o modifiquen el contenido de cualquier dato en una base de datos, debe otorgarles el privilegio para hacerlo.
Puede utilizar el cuadro de diálogo Privilegios de ArcMap, la herramienta de geoprocesamiento Cambiar privilegios de ArcMap o ArcGIS Pro 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 solo privilegios de selección, es decir, que el usuario puede leer y seleccionar pero no modificar el contenido de un dataset. 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 en ArcGIS:
- Solo el propietario de la tabla puede modificar los privilegios.
- Solo el propietario de la tabla puede eliminar o modificar su definición; por lo tanto, aún cuando otro usuario se la han concedido los privilegios de insertar, actualizar y eliminar en un dataset, ese usuario no puede modificar el esquema.
- Si va a otorgarle privilegios a un usuario para insertar, actualizar o eliminar, también debe otorgarle el privilegio para seleccionar; el usuario debe tener la capacidad de leer el dataset antes de que el usuario pueda editarlo.
- Los roles dbo y db_owner no aparecerán en la lista de Usuarios/Roles del cuadro de diálogo Privilegios para las bases de datos de 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 rango de superusuarios en la base de datos no aparecerán en la lista Usuario/Roles 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.
- Revocar privilegios requiere de un bloqueo exclusivo en el dataset; por lo tanto, si hay alguien conectado al dataset, no podrá revocar los privilegios de los usuarios en el dataset.
Estas normas afectan a la concesión y revocación de privilegios sobre datasets de una geodatabase solamente:
- 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 la clase de destino como a la de origen. Si las clases de entidad de destino y origen se encuentran dentro del 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 le asigna privilegios a la clase de origen.
- Si el dataset no está versionado, puede otorgar y revocar individualmente los privilegios de actualización, inserción y eliminación mediante el uso del 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 como versionado, 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 como versionado, 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 datasets versionados.
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 Python: se pueden ejecutar secuencias de comandos Python desde equipos Linux donde esté instalado ArcGIS Server. Se pueden modificar los privilegios de varios datasets.
Utilizar el cuadro de diálogo Privilegios
Abra el cuadro de diálogo Privilegios desde el menú contextual de una conexión de base de datos del árbol de catálogo. Este cuadro de diálogo permite elegir los usuarios o grupos de una lista a los que se puede conceder privilegios. También permite otorgar privilegios para INSERTAR, ACTUALIZAR y ELIMINAR un dataset por separado siempre que el dataset no esté registrado como versionado.
- Inicie ArcMap o ArcCatalog y haga doble clic en la carpeta de Conexiones de base de datos del árbol de catálogo.
- Conéctese a la base de datos o geodatabase que contiene los datos de su propiedad cuyos privilegios quiere otorgar o revocar.
- Haga clic con el botón derecho en el dataset, seleccione Administrar y haga clic en Privilegios.
Se abre el cuadro de diálogo Privilegios.
- Si el usuario o rol cuyos privilegios desea cambiar ya 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.
- Si el usuario o rol ya no está en la lista, haga lo siguiente:
- Haga clic en Agregar para abrir el cuadro de diálogo Usuario/rol.
- Si tiene privilegios en la base de datos para ver la tabla del sistema que enumera 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. Para escribir varios usuarios o grupos, escriba los nombres separándolos por comas (sin dejar espacios).
- Haga clic en Aceptar para cerrar el cuadro de diálogo Usuario/Rol.
- 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 se puede encontrar 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. Tenga en cuenta que la herramienta Cambiar privilegios no muestra los privilegios que tiene el usuario sobre los datasets. Los privilegios para INSERTAR, ACTUALIZAR y ELIMINAR datasets se deben conceder en grupo, no de forma individual.
- Conéctese a la geodatabase o la base de datos como propietario de los datasets cuyos privilegios quiera otorgar o revocar.
- Abra la herramienta Cambiar privilegios
- Desplácese hasta la conexión de base de datos y elija los datasets cuyos privilegios quiera cambiar.
- Escriba el nombre del usuario o grupo cuyos privilegios desea cambiar.
- Utilice las listas desplegables Ver y Editar para seleccionar los privilegios que quiera otorgar al usuario o grupo:
Para otorgar privilegios de edición, también deben otorgarse privilegios de vista.
- Haga clic en Aceptar para ejecutar la herramienta.
Utilizar una secuencia de comandos de Python
Si desea 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.
- En primer lugar, 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.
En este ejemplo, el archivo de conexión gdb.sde se crea en el directorio /usr/connections. La conexión se realiza a la base de datos de mercados del clúster de base de datos dserver como usuario eng1.
import arcpy arcpy.CreateDatabaseConnection_management (r'/usr/connections', "gdb.sde", "POSTGRESQL", "dserver", "DATABASE_AUTH", "eng1", "T!i569", "SAVE_USERNAME", "markets")
- Ejecute la función ChangePrivileges_management.
En este ejemplo se muestran los privilegios otorgados al grupo readers sobre tres datasets.
arcpy.ChangePrivileges_management ("/usr/connections/gdb.sde/markets.eng1.properties,markets.eng1.routes,markets.eng1.demo", "readers", "GRANT", "AS_IS")