Crear una geodatabase de SQL Server

Disponible con una licencia Standard o Advanced.

Para crear una geodatabase en una base de datos de Microsoft SQL Server, ejecute una herramienta de geoprocesamiento o un script de Python desde un cliente de ArcGIS.

Cuando se crea una geodatabase en ArcGIS Pro 3.3, la versión de la geodatabase es 11.3.0.

Comience por leer los requisitos previos y, a continuación, siga las instrucciones que se corresponden con su situación.

Requisitos previos

Para crear un geodatabase SQL Server, haga lo siguiente:

  1. Confirme que la combinación de ArcGIS, SQL Server y el sistema operativo que desea usar sea compatible.
  2. Descargue el cliente de ODBC de SQL Server necesario para conectarse a la versión de SQL Server que usará para almacenar la geodatabase.
  3. Obtenga un archivo de códigos clave de ArcGIS Server y ubíquelo en una ubicación a la que pueda acceder desde el cliente de ArcGIS que vaya a usar para crear la geodatabase.
  4. Determine quién creará la geodatabase, ya que influye en quién crea la base de datos y qué herramienta ejecuta para crear la geodatabase. Siga las instrucciones que se corresponden con su situación:

Usted es el administrador de SQL Server y de la geodatabase

Si desempeña el rol tanto de administrador de base de datos como de administrador de la geodatabase y, por lo tanto, conoce la contraseña de ambos inicios de sesión, puede usar la herramienta de geoprocesamiento Crear geodatabase corporativa o un script de Python para crear una geodatabase en una base de datos de SQL Server.

La herramienta Crear geodatabase corporativa facilita la configuración de una geodatabase porque crea los objetos de base de datos y otorga los privilegios que necesita. Para lograrlo, la herramienta utiliza la siguiente configuración predeterminada y crea los siguientes objetos de base de datos:

  • Crea los archivos de la base de datos (MDF y LDF) en la ubicación predeterminada de SQL Server en el servidor.
  • Establece las opciones de base de datos de SQL Server READ_COMMITTED_SNAPSHOT y ALLOW_SNAPSHOT_ISOLATION en ON.
  • Utiliza los tamaños de archivo predeterminados de la base de datos que ha definido para la base de datos de modeloSQL Server o 500 MB para el archivo MDF y 125 MB para el archivo LDF, lo que sea mayor.
  • Si elige crear una geodatabase en un esquema llamado sde, la herramienta crea un inicio de sesión sde de autenticación de la base de datos en la instancia de SQL Server, crea un usuario sde en la base de datos y lo asigna al nombre de usuario sde, crea un esquema sde en la base de datos y otorga al usuario sde privilegios para crear una geodatabase y anular las conexiones a la instancia de SQL Server.
  • Crea los objetos de geodatabase dentro de la instancia de SQL Server.

Antes de ejecutar la herramienta o script para crear una geodatabase, debe instalar y configurar una instancia de SQL Server.

Instalar y configurar SQL Server

Antes de crear una geodatabase es preciso instalar SQL Server y configurar la instancia. La configuración de la instancia depende de las necesidades de su organización.

Nota:

La instancia de SQL Server debe utilizar una intercalación que distinga entre mayúsculas y minúsculas y la base de datos no puede utilizar una intercalación turca.

Una vez que usted (o el departamento de TI) hayan instalado SQL Server, asegúrense de configurar la instancia de SQL Server para aceptar conexiones remotas; las conexiones remotas no están habilitadas de forma predeterminada.

Consulte la documentación de Microsoft para obtener información de instalación y configuración para SQL Server.

Una vez que SQL Server se haya instalado y configurado, instale los clientes de ArcGIS y SQL Server.

Instalar clientes

Puede instalar ArcGIS Pro (Desktop Standard o Desktop Advanced) o ArcGIS Server (Enterprise Edition) y ejecutar un script de Python para crear una geodatabase. Para ejecutar la herramienta de geoprocesamiento Crear geodatabase corporativa en lugar de una secuencia de comandos, instale ArcGIS Pro.

Nota:

Necesita un archivo de códigos clave de ArcGIS Server (Enterprise Edition) para autorizar su geodatabase en la siguiente sección. Incluso si no ejecuta un script de Python desde un equipo con ArcGIS Server para crear la geodatabase, instale y autorice ArcGIS Server para obtener el archivo de códigos clave. Puede que tenga que copiar el archivo de códigos clave desde el equipo de ArcGIS Server en una ubicación a la que pueda acceder la herramienta de geoprocesamiento Crear geodatabase corporativa.

En la mayoría de los casos, los clientes de ArcGIS se instalan en un equipo distinto de SQL Server. Por lo tanto, debe tener instalado un cliente de SQL Server compatible en el equipo cliente de ArcGIS para conectarse a la base de datos. Consulte Requisitos del sistema de ArcGIS para SQL Server para determinar qué versión del cliente de SQL Server debe instalar para conectarse a la versión de SQL Server que está utilizando.

Para conectar con SQL Server en un equipo Microsoft Windows, puede descargar el cliente de SQL Server desde My Esri o desde el Centro de descargas de Microsoft. Para conectar con SQL Server en un equipo Linux, descargue los archivos de cliente de SQL Server desde el Centro de descargas de Microsoft. Siga las instrucciones de Microsoft para instalar el cliente de SQL Server en el equipo cliente.

Siga estos pasos para instalar y configurar el cliente que necesite para crear la geodatabase. Si no tiene permisos para instalar software, pida a su departamento de TI que siga los pasos.

  1. Instale el cliente de ArcGIS que desea usar para crear la geodatabase.

    Siga las instrucciones que se proporcionan en las guías de instalación de software.

  2. Instale un cliente de SQL Server en el equipo cliente de ArcGIS.

    Si instala el cliente de SQL Server en un sistema operativo de 64 bits, utilice el cliente de SQL Server ejecutable de 64 bits. Si ejecuta el cliente de SQL Server de 32 bits en un sistema operativo de 64 bits, la instalación no funcionará.

Ahora puede crear una geodatabase.

Crear una geodatabase

Puede ejecutar la herramienta Crear geodatabase corporativa desde ArcGIS Pro (Desktop Standard o Desktop Advanced), o bien ejecutar un script de Python desde un cliente de ArcGIS Pro (Desktop Standard o Desktop Advanced) o ArcGIS Server (Enterprise Edition) para crear tanto una base de datos como una geodatabase.

Ejecutar la herramienta Crear geodatabase corporativa

Si tiene acceso a ArcGIS Pro, puede ejecutar una herramienta de geoprocesamiento para crear la geodatabase.

Siga estos pasos para crear una geodatabase usando la herramienta Crear geodatabase corporativa en ArcGIS Pro:

  1. Inicie ArcGIS Pro.
  2. Abra la herramienta Crear geodatabase corporativa.

    Puede buscar o examinar esta herramienta, que se encuentra en el conjunto de herramientas Administración de la geodatabase de la caja de herramientas Administración de datos.

  3. Elija SQL Server de la lista desplegable Plataforma de base de datos.
  4. Escriba el nombre de la instancia de SQL Server a la que desea conectarse en el cuadro de texto instancia.
  5. En el cuadro de texto Base de datos, escriba el nombre de la base de datos en la que desea almacenar su geodatabase.

    Si una base de datos con ese nombre aún no existe en la instancia de SQL Server, la herramienta la crea. Si la base de datos existe, la herramienta la usa para almacenar la geodatabase.

  6. Conéctese a SQL Server como un administrador del sistema. Use un inicio autenticado del sistema operativo que es un miembro del rol fijo del servidor sysadmin en SQL Server o escriba una contraseña y nombre de usuario de la base de datos para un usuario sysadmin.
    • Para autenticarse con un inicio de sesión autenticado de sistema operativo sysadmin, marque la opción Autenticación del sistema operativo. Debe haber iniciado sesión en Windows con el inicio de sesión correcto para utilizar esta opción.
    • Para autenticarse como sysadmin, escriba el nombre de usuario sysadmin en el cuadro de texto Administrador de base de datos y la contraseña de la base de datos correspondiente en el cuadro de texto Contraseña.
  7. Elija el esquema que contendrá la geodatabase.
    • Si desea que un usuario denominado sde sea el administrador de geodatabase y que la geodatabase se almacene en el esquema del usuario sde, active Esquema propio de Sde.
    • Si desea que el usuario dbo sea el administrador de geodatabase y que la geodatabase se almacene en un esquema dbo de, desactive el Esquema propiedad de Sde.

    Para obtener más información sobre cómo almacenar la geodatabase en el esquema sde o dbo, consulte Comparación de propietarios de geodatabase en SQL Server.

  8. Si elige un esquema de sde, el cuadro de texto Administrador de Geodatabase se llena con sde. Si no existe un usuario con ese nombre, la herramienta crea el usuario y su correspondiente esquema, y otorga al usuario los privilegios requeridos para crear una geodatabase.

    Si utiliza la autenticación de la base de datos y un esquema dbo para almacenar la geodatabase, escriba el nombre de un usuario que sea dbo en la instancia SQL Server en el cuadro de texto Administrador de Geodatabase.

    Si utiliza la autenticación del sistema operativo para conectarse a la base de datos, su nombre de usuario actual debe estar en el rol de servidor fijo sysadmin de SQL Server para crear una geodatabase de esquema dbo.

  9. Escriba una contraseña para el administrador de la geodatabase en el cuadro de texto Contraseña del administrador de geodatabase.

    Si el administrador de la geodatabase que especificó ya existe en la base de datos, asegúrese de escribir la contraseña correcta para el usuario existente; esta herramienta no cambia la contraseña.

  10. Para especificar un Archivo de autorización, examine y seleccione el archivo de códigos clave que se creó cuando autorizó ArcGIS Server (Enterprise Edition).

    Este archivo se crea en la carpeta \\Program Files\ESRI\License<release#>\sysgen en los servidores Windows y en /arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License<release#>/sysgen con servidores Linux. Copie el archivo de códigos clave en una ubicación a la que pueda tener acceso con la herramienta Crear geodatabase corporativa. Si aún no lo ha hecho, autorice ahora a ArcGIS Server a crear este archivo.

  11. Haga clic en Ejecutar.

Si no especificó una base de datos existente, se crearán una base de datos y los archivos de registro en la ubicación predeterminada de SQL Server. Se crea una geodatabase en la base de datos. Si eligió una geodatabase de esquema sde, se crean un inicio de sesión sde autenticado por base de datos, una base de datos y un esquema de usuario.

Los mensajes relacionados con la creación de la geodatabase se escriben en el archivo sde_setup.log, que se crea en el directorio especificado para la variable %TEMP% del equipo en el que se ejecuta la herramienta. Si tiene algún problema al crear una geodatabase, compruebe este archivo para solucionarlo.

A continuación, puede crear un usuario que puede cargar datos en la geodatabase.

Ejecutar un script de Python

Puede copiar, guardar y ejecutar el script proporcionado aquí para crear una geodatabase desde ArcGIS Pro (Standard o Advanced) o ArcGIS Server (Enterprise Edition).

  1. Cree un archivo de texto en el equipo cliente de ArcGIS y copie en él la secuencia de comandos siguiente:
    """
    Name: create_enterprise_gdb.py
    Description: Provide connection information to a DBMS instance and create an enterprise geodatabase.
    Type  create_enterprise_gdb.py -h or create_enterprise_gdb.py --help for usage
    Author: Esri
    """
    
    # Import system modules
    import arcpy, os, optparse, sys
    
    
    # Define usage and version
    parser = optparse.OptionParser(usage = "usage: %prog [Options]", version="%prog 1.0 for 10.1 and higher releases")
    
    #Define help and options
    parser.add_option ("--DBMS", dest="Database_type", type="choice", choices=['SQLSERVER', 'ORACLE', 'POSTGRESQL', ''], default="", help="Type of enterprise DBMS:  SQLSERVER, ORACLE, or POSTGRESQL.")
    parser.add_option ("-i", dest="Instance", type="string", default="", help="DBMS instance name")
    parser.add_option ("-D", dest="Database", type="string", default="none", help="Database name:  Not required for Oracle")
    parser.add_option ("--auth", dest="Account_authentication", type ="choice", choices=['DATABASE_AUTH', 'OPERATING_SYSTEM_AUTH'], default='DATABASE_AUTH', help="Authentication type options (case-sensitive):  DATABASE_AUTH, OPERATING_SYSTEM_AUTH.  Default=DATABASE_AUTH")
    parser.add_option ("-U", dest="Dbms_admin", type="string", default="", help="DBMS administrator user")
    parser.add_option ("-P", dest="Dbms_admin_pwd", type="string", default="", help="DBMS administrator password")
    parser.add_option ("--schema", dest="Schema_type", type="choice", choices=['SDE_SCHEMA', 'DBO_SCHEMA'], default="SDE_SCHEMA", help="Schema Type for SQL Server geodatabase, SDE or DBO. Default=SDE_SCHEMA")
    parser.add_option ("-u", dest="Gdb_admin", type="string", default="", help="Geodatabase administrator user name")
    parser.add_option ("-p", dest="Gdb_admin_pwd", type="string", default="", help="Geodatabase administrator password")
    parser.add_option ("-t", dest="Tablespace", type="string", default="", help="Tablespace name")
    parser.add_option ("-l", dest="Authorization_file", type="string", default="", help="Full path and name of authorization file")
    parser.add_option ("--type", dest="Spatial_type", type="choice", choices=['ST_GEOMETRY', 'POSTGIS'], default="ST_GEOMETRY", help="Spatial Type for PostgreSQL geodatabase, ST_GEOMETRY or POSTGIS. Default=ST_GEOMETRY")
    
    # Check if value entered for option
    try:
    	(options, args) = parser.parse_args()
    
    	
    	#Check if no system arguments (options) entered
    	if len(sys.argv) == 1:
    		print("%s: error: %s\n" % (sys.argv[0], "No command options given"))
    		parser.print_help()
    		sys.exit(3)
    
    	#Usage parameters for spatial database connection
    	database_type = options.Database_type.upper()
    	instance = options.Instance
    	database = options.Database.lower()	
    	account_authentication = options.Account_authentication.upper()
    	dbms_admin = options.Dbms_admin
    	dbms_admin_pwd = options.Dbms_admin_pwd
    	schema_type = options.Schema_type.upper()
    	gdb_admin = options.Gdb_admin
    	gdb_admin_pwd = options.Gdb_admin_pwd	
    	tablespace = options.Tablespace
    	license = options.Authorization_file
    	spatial_type = options.Spatial_type.upper()
    	
    	
    	if (database_type == "SQLSERVER"):
    		database_type = "SQL_SERVER"
    	
    	if( database_type ==""):	
    		print(" \n%s: error: \n%s\n" % (sys.argv[0], "DBMS type (--DBMS) must be specified."))
    		parser.print_help()
    		sys.exit(3)		
    		
    	if (license == ""):
    		print(" \n%s: error: \n%s\n" % (sys.argv[0], "Authorization file (-l) must be specified."))
    		parser.print_help()
    		sys.exit(3)			
    	
    	if(database_type == "SQL_SERVER"):
    		if(schema_type == "SDE_SCHEMA" and gdb_admin.lower() != "sde"):
    			print("\n%s: error: %s\n" % (sys.argv[0], "To create SDE schema on SQL Server, geodatabase administrator must be SDE."))
    			sys.exit(3)
    		if (schema_type == "DBO_SCHEMA" and gdb_admin != ""):
    			print("\nWarning: %s\n" % ("Ignoring geodatabase administrator specified when creating DBO schema..."))
    		if( account_authentication == "DATABASE_AUTH" and dbms_admin == ""):
    			print("\n%s: error: %s\n" % (sys.argv[0], "DBMS administrator must be specified with database authentication"))
    			sys.exit(3)
    		if( account_authentication == "OPERATING_SYSTEM_AUTH" and dbms_admin != ""):
    			print("\nWarning: %s\n" % ("Ignoring DBMS administrator specified when using operating system authentication..."))	
    	else:
    		if (schema_type == "DBO_SCHEMA"):
    			print("\nWarning: %s %s, %s\n" % ("Only SDE schema is supported on", database_type, "switching to SDE schema..." ))
    			
    		if( gdb_admin.lower() == ""):
    			print("\n%s: error: %s\n" % (sys.argv[0], "Geodatabase administrator must be specified."))
    			sys.exit(3)
    	
    		if( dbms_admin == ""):
    			print("\n%s: error: %s\n" % (sys.argv[0], "DBMS administrator must be specified!"))
    			sys.exit(3)
    
    		if (account_authentication == "OPERATING_SYSTEM_AUTH"):
    			print("Warning: %s %s, %s\n" % ("Only database authentication is supported on", database_type, "switching to database authentication..." ))
    
    	# Get the current product license
    	product_license=arcpy.ProductInfo()
    	
    	
    	# Checks required license level
    	if product_license.upper() == "ARCVIEW" or product_license.upper() == 'ENGINE':
    		print("\n" + product_license + " license found!" + " Creating an enterprise geodatabase requires an ArcGIS for Desktop Standard or Advanced, ArcGIS Engine with the Geodatabase Update extension, or ArcGIS for Server license.")
    		sys.exit("Re-authorize ArcGIS before creating enterprise geodatabase.")
    	else:
    		print("\n" + product_license + " license available!  Continuing to create...")
    		arcpy.AddMessage("+++++++++")
    	
    	
    	try:
    		print("Creating enterprise geodatabase...\n")
    		arcpy.management.CreateEnterpriseGeodatabase(database_platform=database_type,instance_name=instance, database_name=database, account_authentication=account_authentication, database_admin=dbms_admin, database_admin_password=dbms_admin_pwd, sde_schema=schema_type, gdb_admin_name=gdb_admin, gdb_admin_password=gdb_admin_pwd, tablespace_name=tablespace, authorization_file=license, spatial_type=spatial_type)
    		for i in range(arcpy.GetMessageCount()):
    			arcpy.AddReturnMessage(i)
    		arcpy.AddMessage("+++++++++\n")
    	except:
    		for i in range(arcpy.GetMessageCount()):
    			arcpy.AddReturnMessage(i)
    			
    #Check if no value entered for option	
    except SystemExit as e:
    	if e.code == 2:
    		parser.usage = ""
    		print("\n")
    		parser.print_help()   
    		parser.exit(2)
  2. Guarde el archivo con una extensión .py.
  3. Ejecute el script, proporcionando opciones e información específicas de su sitio.

    En el siguiente ejemplo, se ejecuta el archivo create_gdb.py para crear la base de datos, entgdb, en la instancia de SQL Server porthos\gisprod. La herramienta se ejecuta como usuario sa con la autenticación de la base de datos y crea una geodatabase en el esquema de usuario sde. Se especifica un archivo de códigos clave en la ubicación predeterminada de ArcGIS Server para autorizar la geodatabase.

    create_gdb.py --DBMS SQL_SERVER -i porthos\gisprod -D entgdb --auth DATABASE_AUTH 
    -U sa -P N0pe3king! --schema SDE_SCHEMA -u sde -p Tgdbst@rtsh3r3 -l '\\Program Files\ESRI\License\sysgen\keycodes'

    En este ejemplo, se ejecuta el mismo script habiendo iniciado sesión en el equipo cliente con un nombre de usuario que pertenece al rol de servidor fijo sysadmin para crear una geodatabase en el esquema dbo:

    create_gdb.py --DBMS SQL_SERVER -i porthos\gisprod -D entgdb --auth OPERATING_SYSTEM_AUTH 
    --schema DBO_SCHEMA -l '\\Program Files\ESRI\License\sysgen\keycodes'
    Sugerencia:

    Type -h or --help at the command prompt to get syntax help.

Ahora tiene una geodatabase en SQL Server.

Los mensajes relacionados con la creación de la geodatabase se escriben en el archivo sde_setup.log, que se crea en el directorio especificado para la variable %TEMP% del equipo en el que se ejecuta el script. Si tiene algún problema al crear una geodatabase, compruebe este archivo para solucionarlo.

A continuación, puede crear un usuario que puede cargar datos en la geodatabase.

El administrador de SQL Server crea la base de datos; el administrador de la geodatabase crea la geodatabase

Si la persona que va a crear la geodatabase no tiene acceso a la contraseña del administrador de base de datos, este puede crear la base de datos y crear el nombre de usuario, el usuario y el esquema del administrador de la geodatabase. Si la geodatabase se va a almacenar en el esquema sde, el administrador de base de datos crea un nombre de usuario, un usuario y un esquema. Si la geodatabase se va a almacenar en el esquema dbo, el administrador de base de datos crea un nombre de usuario y un usuario y asigna al usuario el papel de propietario de la base de datos. Consulte Comparación de propietarios de geodatabase en SQL Server para obtener información sobre las opciones de almacenamiento de la geodatabase.

El administrador de la geodatabase puede conectarse a la base de datos como administrador de la geodatabase y crear una geodatabase con la herramienta de geoprocesamiento Habilitar geodatabase corporativa o un script de Python.

La herramienta Habilitar geodatabase corporativa acepta un archivo de conexión de base de datos como entrada y crea las tablas, vistas, funciones y procedimientos del sistema de geodatabase.

Instalar y configurar SQL Server

Antes de que el administrador de la geodatabase pueda crear una geodatabase, el administrador de SQL Server debe hacer lo siguiente:

  • Instale SQL Server y configure la instancia. La configuración de la instancia depende de las necesidades de su organización. Verifique los requisitos del sistema de ArcGIS antes de continuar, para asegurarse de que el sistema de administración de bases de datos, ArcGIS y las combinaciones de hardware que desea utilizar son compatibles. Una vez que haya instalado SQL Server, asegúrese de configurar la instancia de SQL Server para aceptar conexiones remotas; las conexiones remotas no están habilitadas de forma predeterminada. Consulte la documentación de Microsoft para obtener información de instalación y configuración para SQL Server.

    Nota:

    La instancia de SQL Server debe utilizar una intercalación que distinga entre mayúsculas y minúsculas y la base de datos no puede utilizar una intercalación turca.

  • Cree una base de datos.
  • Establezca las opciones de base de datos de SQL Server READ_COMMITTED_SNAPSHOT y ALLOW_SNAPSHOT_ISOLATION en ON. Si el administrador de SQL Server no establece estas opciones en ON, pero concede permisos ALTER al administrador de la geodatabase, la herramienta Habilitar geodatabase corporativa cambia esta configuración en la base de datos cuando se ejecute. Si el administrador de SQL Server no establece estas opciones y el administrador de la geodatabase no tiene suficientes permisos para cambiarlos, la creación de la geodatabase falla.
  • Agregue o cree un nombre de usuario asociado a un usuario de la base de datos llamado sde o a uno que sea el propietario de esta.
  • Si usa una geodatabase de esquema sde, cree un esquema llamado sde en la base de datos. Establezca este como el esquema predeterminado del usuario sde.
  • Si usa una geodatabase de esquema sde, el usuario sde debe contar, al menos, con los siguientes privilegios: CREATE FUNCTION, CREATE PROCEDURE, CREATE TABLE y CREATE VIEW. Para ver otros privilegios, consulte Privilegios para geodatabases en SQL Server.

Instalar clientes

El administrador de la geodatabase puede instalar ArcGIS Pro (Desktop Standard o Desktop Advanced) o ArcGIS Server (Enterprise Edition) para crear una geodatabase ejecutando un script de Python. Para ejecutar la herramienta de geoprocesamiento Habilitar geodatabase corporativa en lugar de una secuencia de comandos, instale ArcGIS Pro.

Nota:

Necesita un archivo de códigos clave de ArcGIS Server (Enterprise Edition) para autorizar su geodatabase en la siguiente sección. Aunque no ejecute un script de Python desde un equipo con ArcGIS Server para crear la geodatabase, debe instalar y autorizar ArcGIS Server para obtener el archivo de códigos clave. Puede que tenga que copiar el archivo de códigos clave desde el equipo de ArcGIS Server en una ubicación a la que pueda acceder la herramienta de geoprocesamiento Habilitar geodatabase corporativa.

En la mayoría de los casos, los clientes de ArcGIS se instalan en un equipo distinto de SQL Server. Por lo tanto, debe tener instalado un cliente de SQL Server compatible en el equipo cliente de ArcGIS para conectarse a la base de datos. Consulte Requisitos del sistema de ArcGIS para SQL Server para determinar qué versión del cliente de SQL Server debe instalar para conectarse a la versión de SQL Server que está utilizando.

Para conectar con SQL Server en un equipo Microsoft Windows, puede descargar el cliente de SQL Server desde My Esri o desde el Centro de descargas de Microsoft. Para conectar con SQL Server en un equipo Linux, descargue los archivos de cliente de SQL Server desde el Centro de descargas de Microsoft. Siga las instrucciones de Microsoft para instalar el cliente de SQL Server en el equipo cliente.

  1. Instale el cliente de ArcGIS que desea usar para crear la geodatabase.

    Siga las instrucciones que se proporcionan en las guías de instalación de software.

  2. Instale un cliente de SQL Server en el equipo cliente de ArcGIS.

    Si instala el cliente de SQL Server en un sistema operativo de 64 bits, utilice el cliente de SQL Server ejecutable de 64 bits. Si ejecuta el cliente de SQL Server de 32 bits en un sistema operativo de 64 bits, no funcionará.

Su cliente de ArcGIS está listo para conectarse a la base de datos y crear una geodatabase. Utilice uno de los métodos descritos en la siguiente sección para ello.

Crear una geodatabase

El administrador de la geodatabase puede ejecutar la herramienta Habilitar geodatabase corporativa desde ArcGIS Pro (Desktop Standard o Desktop Advanced) o ejecutar un script de Python desde un equipo con ArcGIS Pro (Desktop Standard o Desktop Advanced) o ArcGIS Server (Enterprise Edition) para crear una geodatabase en la base de datos existente.

Ejecutar la herramienta Habilitar geodatabase corporativa

Puede ejecutar la herramienta Habilitar geodatabase corporativa desde ArcGIS Pro para crear una geodatabase en una base de datos de SQL Server existente.

Siga estos pasos para crear una geodatabase usando la herramienta Habilitar geodatabase corporativa en ArcGIS Pro:

  1. Inicie ArcGIS Pro.
  2. Conéctese a la base de datos de SQL Server como administrador de la geodatabase.

    Guarde la contraseña del usuario en el cuadro de diálogo Conexión de base de datos.

  3. Abra la herramienta Habilitar geodatabase corporativa.
  4. Arrastre la nueva conexión de base de datos al campo Conexión de la base de datos de entrada.
  5. Navegue al archivo de autorización de ArcGIS Server que se creó cuando autorizó ArcGIS Server y agréguelo al cuadro de texto Archivo de autorización.

    Cuando se utiliza el asistente para autorizar ArcGIS Server, se escribe un archivo de códigos clave en el servidor donde está instalado el software. El archivo de códigos clave se crea en Program Files\ESRI\License<release>\sysgen en los servidores Windows y en /arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License<release#>/sysgen con servidores Linux. Copie el archivo en una ubicación a la que pueda tener acceso la herramienta Habilitar geodatabase corporativa. Si aún no lo ha hecho, autorice ArcGIS Server para crear este archivo.

  6. Haga clic en Ejecutar.

Se crea una geodatabase en la base de datos.

Los mensajes relacionados con la creación de la geodatabase se escriben en el archivo sde_setup.log, que se crea en el directorio especificado para la variable %TEMP% del equipo en el que se ejecuta la herramienta. Si tiene algún problema al crear una geodatabase, compruebe este archivo para solucionarlo.

A continuación, el administrador de base de datos puede crear un usuario que puede cargar datos en la geodatabase.

Ejecutar un script de Python

Para crear la geodatabase ejecutando un script desde ArcGIS Pro (Desktop Standard o Desktop Advanced) o ArcGIS Server (Enterprise Edition) instalado en un equipo con Windows, puede usar el script que se proporciona aquí.

Siga estos pasos para ejecutar un script de Python y crear una geodatabase en una base de datos existente de SQL Server:

  1. Cree un archivo de texto en el equipo cliente de ArcGIS y copie en él la secuencia de comandos siguiente:

    """
    Name: enable_enterprise_gdb.py
    Description: Provide connection information to an enterprise database
    and enable enterprise geodatabase.
    Type enable_enterprise_gdb.py -h or enable_enterprise_gdb.py --help for usage
    """
    
    # Import system modules
    import arcpy, os, optparse, sys
    
    
    # Define usage and version
    parser = optparse.OptionParser(usage = "usage: %prog [Options]", version="%prog 1.0 for " + arcpy.GetInstallInfo()['Version'] )
    
    #Define help and options
    parser.add_option ("--DBMS", dest="Database_type", type="choice", choices=['SQL_SERVER', 'ORACLE', 'POSTGRESQL', 'DB2','INFORMIX','DB2ZOS', ''], default="", help="Type of enterprise DBMS:  SQL_SERVER, ORACLE, POSTGRESQL, DB2, INFORMIX, or DB2ZOS.")
    parser.add_option ("-i", dest="Instance", type="string", default="", help="DBMS instance name")
    parser.add_option ("--auth", dest="account_authentication", type ="choice", choices=['DATABASE_AUTH', 'OPERATING_SYSTEM_AUTH'], default='DATABASE_AUTH', help="Authentication type options (case-sensitive):  DATABASE_AUTH, OPERATING_SYSTEM_AUTH.  Default=DATABASE_AUTH")
    parser.add_option ("-u", dest="User", type="string", default="", help="Geodatabase administrator user name")
    parser.add_option ("-p", dest="Password", type="string", default="", help="Geodatabase  administrator password")
    parser.add_option ("-D", dest="Database", type="string", default="none", help="Database name:  Not required for Oracle")
    parser.add_option ("-l", dest="Authorization_file", type="string", default="", help="Full path and name of authorization file")
    
    
    # Check if value entered for option
    try:
    	(options, args) = parser.parse_args()
    
    	
    #Check if no system arguments (options) entered
    	if len(sys.argv) == 1:
    		print("%s: error: %s\n" % (sys.argv[0], "No command options given"))
    		parser.print_help()
    		sys.exit(3)
    	
    
    	#Usage parameters for spatial database connection
    	database_type = options.Database_type.upper()
    	instance = options.Instance
    	account_authentication = options.account_authentication.upper()
    	username = options.User.lower() 
    	password = options.Password	
    	database = options.Database.lower()
    	license = options.Authorization_file
    
    
    	if( database_type ==""):	
    		print(" \n%s: error: \n%s\n" % (sys.argv[0], "DBMS type (--DBMS) must be specified."))
    		parser.print_help()
    		sys.exit(3)		
    		
    	if (license == ""):
    		print(" \n%s: error: \n%s\n" % (sys.argv[0], "Authorization file (-l) must be specified."))
    		parser.print_help()
    		sys.exit(3)
    
    		
    	# Get the current product license
    	product_license=arcpy.ProductInfo()
    	
    	if (license == ""):
    		print(" \n%s: error: %s\n" % (sys.argv[0], "Authorization file (-l) must be specified."))
    		parser.print_help()
    		sys.exit(3)
    	
    	# Checks required license level
    	if product_license.upper() == "ARCVIEW" or product_license.upper() == 'ENGINE':
    		print("\n" + product_license + " license found!" + "  Enabling enterprise geodatabase functionality requires an ArcGIS Desktop Standard or Advanced, ArcGIS Engine with the Geodatabase Update extension, or ArcGIS Server license.")
    		sys.exit("Re-authorize ArcGIS before enabling an enterprise geodatabase.")
    	else:
    		print("\n" + product_license + " license available!  Continuing to enable...")
    		arcpy.AddMessage("+++++++++")
    	
    	# Local variables
    	instance_temp = instance.replace("\\","_")
    	instance_temp = instance_temp.replace("/","_")
    	instance_temp = instance_temp.replace(":","_")
    	Conn_File_NameT = instance_temp + "_" + database + "_" + username    
    	
    	if os.environ.get("TEMP") == None:
    		temp = "c:\\temp"	
    	else:
    		temp = os.environ.get("TEMP")
    	
    	if os.environ.get("TMP") == None:
    		temp = "/usr/tmp"		
    	else:
    		temp = os.environ.get("TMP")  
    	
    
    	Connection_File_Name = Conn_File_NameT + ".sde"
    	Connection_File_Name_full_path = temp + os.sep + Conn_File_NameT + ".sde"
    	
    	# Check for the .sde file and delete it if present
    	arcpy.env.overwriteOutput=True
    	if os.path.exists(Connection_File_Name_full_path):
    		os.remove(Connection_File_Name_full_path)
    	
    	print("\nCreating Database Connection File...\n")	
    	# Process: Create Database Connection File...
    	# Usage:  out_file_location, out_file_name, DBMS_TYPE, instnace, database, account_authentication, username, password, save_username_password(must be true)
    	arcpy.CreateDatabaseConnection_management(out_folder_path=temp, out_name=Connection_File_Name, database_platform=database_type, instance=instance, database=database, account_authentication=account_authentication, username=username, password=password, save_user_pass="TRUE")
    	for i in range(arcpy.GetMessageCount()):
    
                    if "000565" in arcpy.GetMessage(i):   #Check if database connection was successful
    
                            arcpy.AddReturnMessage(i)
    
                            arcpy.AddMessage("\n+++++++++")
    
                            arcpy.AddMessage("Exiting!!")
    
                            arcpy.AddMessage("+++++++++\n")
    
                            sys.exit(3)
    
                    else:
    
                            arcpy.AddReturnMessage(i)
    
                            arcpy.AddMessage("+++++++++\n")
    	
    	# Process: Enable geodatabase...
    	try:
    		print("Enabling Enterprise Geodatabase...\n")
    		arcpy.EnableEnterpriseGeodatabase_management(input_database=Connection_File_Name_full_path, authorization_file=license)
    		for i in range(arcpy.GetMessageCount()):
    			arcpy.AddReturnMessage(i)
    		arcpy.AddMessage("+++++++++\n")
    	except:
    		for i in range(arcpy.GetMessageCount()):
    			arcpy.AddReturnMessage(i)
    			
    	if os.path.exists(Connection_File_Name_full_path):
    		os.remove(Connection_File_Name_full_path)
    			
    #Check if no value entered for option	
    except SystemExit as e:
    	if e.code == 2:
    		parser.usage = ""
    		print("\n")
    		parser.print_help() 
    		parser.exit(2)

  2. Guarde el archivo con una extensión .py.
  3. Ejecute el script, proporcionando opciones e información específicas de su sitio.

    En el siguiente ejemplo, se ejecuta el archivo enable_gdb.py para la base de datos spdata en la instancia ssprod. La conexión se realiza con el nombre de usuario sde y la contraseña Tgdbst@rtsh3r3. Se especifica un archivo de códigos clave en la ubicación predeterminada de ArcGIS Server para autorizar la geodatabase.

    enable_gdb.py --DBMS SQL_SERVER -i ssprod --auth DATABASE_AUTH 
    -u sde -p Tgdbst@rtsh3r3 -D spdata -l '\\Program Files\ESRI\License\sysgen\keycodes'
    Sugerencia:

    Type -h or --help at the command prompt to get syntax help.

Ahora tiene una geodatabase en la base de datos de SQL Server.

Un archivo de registro para la creación de la geodatabase (GDBCreateGeodatabase<#>.log) se escribe en el directorio especificado para su variable %TEMP% en el equipo en el que se ejecuta el script.

A continuación, el administrador de base de datos puede crear un usuario que puede cargar datos en la geodatabase.