En Microsoft SQL Server, los administradores de base de datos agregan nombres de usuario a la instancia de SQL Server y estos se asignan a usuarios de bases de datos individuales en la instancia de SQL Server. Los usuarios de la base de datos que creen tablas y clases de entidad deben tener los privilegios necesarios para crear estos objetos en la base de datos y un esquema donde puedan hacerlo. Al usar ArcGIS, ese esquema debe tener el mismo nombre que el usuario de la base de datos.
El administrador de base de datos puede utilizar la herramienta de geoprocesamiento Crear usuario de base de datos o una secuencia de comandos de Python que emplee la función ArcPy de management.CreateDatabaseUser para hacer todo lo siguiente:
- Cree o agregue un nombre de usuario a la instancia de SQL Server.
- Cree un usuario asignado al nombre de usuario especificado.
- Cree un esquema de geocodificación para el usuario en la base de datos que especifique.
- Otorgue privilegios suficientes al usuario para crear tablas, clases de entidad y vistas en la base de datos especificada.
Utilizar el geoprocesamiento para agregar un usuario que puede crear datos
Ejecute la herramienta Crear usuario de base de datos desde ArcGIS Pro o invoque la función ArcPy de management.CreateDatabaseUser en una secuencia de comandos de Python para crear un usuario de base de datos que puede crear tablas, clases de entidad y vistas.
Debe conectarse a la base de datos con un nombre de usuario que tenga privilegios sysadmin en la instancia de SQL Server para ejecutar la herramienta Crear usuario de base de datos o la función management.CreateDatabaseUser.
Para crear un usuario de la base de datos para un nombre de usuario de Microsoft Windows, el nombre de usuario ya debe existir antes de ejecutar la herramienta o la función.
Utilice la herramienta Crear usuario de base de datos
Siga estos pasos para crear un usuario de base de datos en SQL Server utilizando la herramienta Crear usuario de base de datos:
- Inicie ArcGIS Pro.
- Conéctese a la base de datos o geodatabase con un nombre de usuario que tenga privilegios sysadmin en la instancia de SQL Server.
- Abra la herramienta Crear usuario de base de datos.
La herramienta está en el conjunto de herramientas Administración de geodatabase de la caja de herramientas Administración de datos.
- Especifique la conexión de base de datos de Conexión de la base de datos de entrada.
- Elija si desea crear un nombre de usuario autenticado de SQL Server o usar un nombre de usuario autenticado de Windows existente.
- Deje Crear un usuario autenticado del sistema operativo desactivado para crear un nombre de usuario autenticado de SQL Server. Tenga en cuenta que, de forma predeterminada, las instancias de SQL Server usan solo la autenticación de Windows. Si su instancia no está configurada para usar la autenticación de SQL Server y Windows, no podrá crear un nombre de usuario autenticado de la base de datos.
- Marque Crear un usuario autenticado del sistema operativo para usar un nombre de usuario autenticado de Windows existente.
- Asigne un nombre al usuario de la base de datos que creará la herramienta.
Si elige crear un nombre de usuario autenticado de SQL Server, el nombre que escriba aquí también se usará para el inicio de sesión.
- Proporcione una contraseña para el usuario de la base de datos.
- Si ya tiene un rol de base de datos al que desea agregar este usuario, especifique dicho rol.
- Haga clic en Ejecutar.
Ejecutar un script de Python
Para crear usuarios mediante una secuencia de comandos, siga estos pasos:
- Cree un archivo de texto en un equipo cliente de ArcGIS y copie uno de los siguientes bloques de código en el archivo.
Modifique el código para utilizar información específica de su sitio
En los ejemplos se presupone que usted dispone de un archivo de conexión a la base de datos que se conecta como un usuario que tiene privilegios de sysadmin en la instancia de SQL Server. Si no dispone de ningún archivo de conexión, cree uno antes de ejecutar el script.
# Name: createdatabaseuser_exampleW.py # Description: Uses existing database connection file # on a Windows computer to create a database user in SQL Server. # Import arcpy module import arcpy # Provide a database connection file for the system administrator user. connection = "C:\\ArcGIS\connection_files\<Connection file>.sde" # Process: Create database user that can create data for an existing operating system login. arcpy.CreateDatabaseUser_management(connection, "OPERATING_SYSTEM_USER", "NETWORKNAME\\username")# Name: createdatabaseuser_exampleL.py # Description: Uses existing database connection file # on a Linux computer to create a database user in SQL Server. # Import arcpy module import arcpy # Provide a database connection file for the system administrator user. connection = "<user>/connections/<Connection_file>.sde" # Process: Create a new database login and user that can create data. arcpy.CreateDatabaseUser_management(connection, "DATABASE_USER", "dbuser", "t3mpor@rypL@ceholder1") - Guarde el archivo con una extensión .py.
- Ejecute el script desde un equipo que tenga instalado ArcGIS Pro (Standard o Advanced) o ArcGIS Server.
Para obtener más información sobre cómo ejecutar Python desde un equipo ArcGIS Server, consulte ArcGIS Server y ArcPy.
La base de datos dispone ahora de un usuario que puede crear tablas y clases de entidad.
El nuevo usuario propietario de los datos puede conectarse a la base de datos y crear tablas y clases de entidad. El propietario de los datos puede otorgar privilegios a otros usuarios sobre sus tablas y clases de entidad. Consulte Otorgar y revocar privilegios sobre datasets en bases de datos y geodatabases corporativas para obtener instrucciones.
Crear nombres de usuario y usuarios con las herramientas de SQL Server
Como alternativa, el administrador de base de datos puede usar las herramientas de SQL Server para crear usuarios e inicios de sesióny nombres de usuario. Por ejemplo, utilice SQL para crear usuarios que tienen privilegios distintos de los otorgados por la herramienta Crear usuario de base de datos o que carecen de privilegios otorgados directamente al usuario. Hay algunos aspectos a tener en cuenta al utilizar SQL para crear nombres de usuario y usuarios para usarlos con ArcGIS:
- Todos los usuarios que creen datos deben tener un esquema en la base de datos. El nombre del esquema debe coincidir con el nombre de usuario.
- Puede otorgar a un grupo de Windows acceso a SQL Server en lugar de inicios de sesión individuales de Windows, lo que simplifica la creación y administración de los inicios de sesión. Todos los miembros del grupo de Windows pueden iniciar sesión en SQL Server. Los privilegios sobre servidores, bases de datos y datasets otorgados al grupo se aplican automáticamente a todos sus miembros. Sin embargo, tenga en cuenta que no puede crear un esquema para almacenar los datos creados por todos los miembros del grupo. Cada usuario del grupo que crea datos en la geodatabase debe tener su propio esquema en el que almacena los datos. SQL Server crea un usuario y un esquema en la base de datos la primera vez que un miembro del grupo crea datos. Esto ocurre automáticamente; no cree un esquema y usuario manualmente.
- Puede otorgar privilegios de base de datos directamente a los usuarios o por medio de roles de base de datos. Consulte Privilegios para geodatabases en SQL Server para obtener información sobre los privilegios necesarios.
Para obtener instrucciones sobre el uso de las herramientas de SQL Server para crear nombres de usuario, usuarios y esquemas, consulte la documentación de Microsoft SQL Server.
Los nuevos usuarios pueden conectarse a la base de datos. Los que tienen privilegios para crear objetos pueden crear tablas y clases de entidad, además de otorgar privilegios sobre ellos a otros usuarios. Consulte Otorgar y revocar privilegios sobre datasets en bases de datos y geodatabases corporativas para obtener instrucciones.