Available with Standard or Advanced license.
How you set up a geodatabase in Microsoft SQL Server depends on situations at your site. Follow the instructions for the scenarios that apply to your organization.
- You are the SQL Server and geodatabase administrator.
- The SQL Server administrator creates the database; the geodatabase administrator creates the geodatabase.
You are the SQL Server and geodatabase administrator
If you perform the role of both the database administrator and geodatabase administrator and, therefore, know the password for both logins, you can use the Create Enterprise Geodatabase geoprocessing tool or Python script to create a geodatabase in SQL Server.
The Create Enterprise Geodatabase tool makes it easy to set up a geodatabase because it creates the database objects and grants required privileges for you. To achieve this, specific default settings are used. The following describes what the Create Enterprise Geodatabase tool does and the settings it uses:
- It creates the database files (MDF and LDF) in the default SQL Server location on the server.
- It sets the SQL Server database options READ_COMMITTED_SNAPSHOT and ALLOW_SNAPSHOT_ISOLATION to ON.
- The database file sizes will either be the same as you have defined for the SQL Server model database or 500 MB for the MDF file and 125 MB for the LDF file, whichever is greater.
- If you choose to create a geodatabase in a schema named sde, the tool creates an sde SQL Server-authenticated login in the SQL Server instance, creates an sde user in the database and maps it to the sde login, creates an sde schema in the database, and grants the sde user privileges to create a geodatabase and kill connections to the SQL Server instance.
- It creates a geodatabase.
Before you run the tool or script to create a geodatabase, you must set up a SQL Server instance.
Set up SQL Server
Before you create a geodatabase, SQL Server must be installed and the instance configured. How you configure the instance depends on the specific needs of your organization. However, note that the SQL Server instance must use a case-insensitive collation.
Check the ArcGIS system requirements before you create a geodatabase to be sure the database management system, ArcGIS, and hardware combinations you want to use are supported. Once you install SQL Server, be sure you configure the SQL Server instance to accept remote connections; by default, remote connections are not enabled.
Consult Microsoft documentation for SQL Server installation and configuration information.
After SQL Server is installed and configured, install ArcGIS and SQL Server clients.
Configure an ArcGIS client
You can run a Python script from ArcGIS for Desktop (Standard or Advanced), ArcGIS Engine Runtime with the Geodatabase Update extension, or ArcGIS for Server (Standard or Advanced) to create a geodatabase. If you want to run the Create Enterprise Geodatabase geoprocessing tool instead of a script, use ArcGIS for Desktop.
In most cases, your ArcGIS clients are installed on a different computer than SQL Server. Therefore, you must have a supported SQL Server Native Client installed on the ArcGIS client computer to connect to the database. See Microsoft documentation to determine which version SQL Server Native Client you should install to connect to the version of SQL Server you are using.
You can download the SQL Server Native Client from My Esri or from the Microsoft Download Center. Follow the instructions from Microsoft to install the SQL Server Native Client on your client machine.
- Install the ArcGIS client you want to use for geodatabase creation.
Follow the instructions provided in the software installation guides.
- Install a SQL Server client on the ArcGIS client computer.
If you are installing the SQL Server native client on a 64-bit operating system, use the 64-bit SQL Server native client executable. This executable installs both the 32- and 64-bit client, which allows it to work with both 32- and 64-bit applications. If you run the 32-bit SQL Server native client on a 64-bit operating system, it will fail.
Now you can create a geodatabase.
Create a geodatabase
You can run the Create Enterprise Geodatabase tool from ArcGIS for Desktop, or run a Python script from an ArcGIS for Desktop, ArcGIS for Server, or ArcGIS Engine client to create both a database and geodatabase.
Run the Create Enterprise Geodatabase tool
If you have access to ArcGIS for Desktop, you can run a geoprocessing tool to create the geodatabase.
- Start ArcMap or ArcCatalog.
- Open the Create Enterprise Geodatabase tool.
You can search for or browse to this tool, which is located in the Geodatabase Administration toolset of the Data Management toolbox.
- Choose SQL Server from the Database Platform drop-down list.
- Type the name of the SQL Server instance to which you will connect in the Instance text box.
- In the Database text box, type the name of the database where you want to store your geodatabase.
If a database with that name does not already exist in the SQL Server instance, it will be created. If it already exists, the database you specify will be used to store the geodatabase.
-
Connect to SQL Server as a system administrator. This can be done with either an operating system-authenticated login that is a member of the sysadmin fixed server role in SQL Server or by typing a database user name and password for a sysadmin user.
- To log in with a sysadmin operating system-authenticated login, check Operating System Authentication. You must be logged in to Windows with the correct login to use this option.
- To log in as sysadmin, type the sysadmin user name in the Database Administrator text box and the corresponding password in the Database Administrator Password text box.
- Choose the schema that will contain the geodatabase:
- If you want the user named sde to be the geodatabase administrator and the geodatabase to be stored in the sde user's schema, check Sde Owned Schema.
- If you want the dbo user to be the geodatabase administrator and the geodatabase to be stored in the dbo schema, uncheck Sde Owned Schema.
For more information on storing the geodatabase in either the sde or dbo schema, see A comparison of geodatabase owners in SQL Server.
- Type a password for the geodatabase administrator in the Geodatabase Administrator Password text box.
If the geodatabase administrator you specified already exists in the database, be sure to type the correct password for the existing user; this tool will not change the password.
- To specify an Authorization File, browse to and choose the keycodes file that was created when you authorized ArcGIS for Server Enterprise.
This file is written to the \\Program Files\ESRI\License<release#>\sysgen folder on Windows servers. If you have not already done so, authorize ArcGIS for Server now to create this file.
- Click OK to run the tool.
If you choose an sde-owned schema, the Geodatabase Administrator text box will be prepopulated with sde. If a user with that name does not already exist, the user and its corresponding schema will be created, and the user will be granted the privileges required to create a geodatabase.
If you are using database authentication and a dbo schema to store the geodatabase, type the name of a user who is dbo in the SQL Server instance in the Geodatabase Administrator text box.
If you are using operating system authentication to connect to the database, your current login must be in the SQL Server sysadmin fixed-server role to create a dbo-schema geodatabase.
A database and log files are created in the default SQL Server location if you did not specify an existing database. A geodatabase is created in the database. If you chose an sde-schema geodatabase, a SQL Server-authenticated sde login, database user, and schema are created.
A log file for the geodatabase creation (GDBCreateGeodatabase<#>.log) is written to the directory specified for your %TEMP% variable on the computer where the tool is run. If you have any problems running the tool, check this log file to troubleshoot the problem.
Next, you can create a user who can load data into the geodatabase.
Run a Python script
You can copy, save, and run the script provided here to create a geodatabase from ArcGIS for Desktop (Standard or Advanced), ArcGIS for Server (Standard or Advanced), or ArcGIS Runtime (with the Geodatabase Update extension).
-
Create a text file on the ArcGIS client machine and copy the following script into the file.
""" 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 """ # Import system modules import arcpy import os import optparse import 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=['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: Do not specify 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 applies to geodatabases in SQL Server only. Type SDE_SCHEMA to create geodatabase in SDE schema or type DBO_SCHEMA to create geodatabase in DBO schema. Default=SDE_SCHEMA") parser.add_option ("-u", dest="Gdb_admin", type="string", default="", help="Geodatabase administrator user name; Must always be sde for PostgreSQL, sde-schema geodatabases in SQL Server, and master sde geodatabase in Oracle") 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; For PostgreSQL, type name of existing tablespace in which to store database. If no tablespace name specified, pg_default is used. For Oracle, type name of existing tablespace, or, if tablespace with specified name does not exist, it will be created and set as the default tablespace for the sde user. If no tablespace name is specified, SDE_TBS tablespace is created and set as sde user default. Tablespace name not supported for SQL Server.") parser.add_option ("-l", dest="Authorization_file", type="string", default="", help="Full path and name of authorization file; file created when ArcGIS for Server Enterprise authorized, and stored in \\Program Files\ESRI\License<release#>\sysgen on Windows or /arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License<release#>/sysgen on Linux") # 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 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( gdb_admin.lower() != "sde"): if (database_type == "ORACLE"): print("\nGeodatabase admin user is not SDE, creating user schema geodatabase on Oracle...\n") else: print("\n%s: error: %s for %s.\n" % (sys.argv[0], "Geodatabase administrator must be SDE", database_type)) 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.CreateEnterpriseGeodatabase_management(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) 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)
- Save the file with a .py extension.
- Run the script, providing options and information specific to your site.
In the following example, the file create_gdb.py is run to create the database, entgdb, on the porthos\gisprod SQL Server instance. The tool is run as the sa user, using database authentication, and it creates a geodatabase in the sde user's schema. A keycodes file in the default ArcGIS Server location is specified to authorize the 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\License10.3\sysgen\keycodes
In this example, the same script is run while logged in to the client machine as a login that is a member of the sysadmin fixed-server role to create a geodatabase in the dbo schema:
create_gdb.py --DBMS SQL_SERVER -i porthos\gisprod -D entgdb --auth OPERATING_SYSTEM_AUTH --schema DBO_SCHEMA -l \\Program Files\ESRI\License10.3\sysgen\keycodes
You now have a geodatabase in SQL Server.
A log file for the geodatabase creation (GDBCreateGeodatabase<#>.log) is written to the directory specified for your %TEMP% variable on the computer where the script is run.
Next, you can create a user who can load data into the geodatabase.
The SQL Server administrator creates the database; the geodatabase administrator creates the geodatabase
If the person creating the geodatabase does not have access to the database administrator's password, the database administrator can create the database and the geodatabase administrator's login, user, and schema. If the geodatabase is to be stored in the sde schema, the database administrator creates an sde login, user, and schema. If the gedatabase us to be stored in the dbo schema, the database administrator creates a login and user, and assigns the user to be the owner of the database. See A comparison of geodatabase owners in SQL Server for information on geodatabase storage options.
The geodatabase administrator can connect to the database as the geodatabase administrator and create a geodatabase using the Enable Enterprise Geodatabase geoprocessing tool or Python script.
The Enable Enterprise Geodatabase tool takes a database connection file as input and creates the geodatabase system tables, views, functions, and procedures.
Set up SQL Server
Before the geodatabase administrator can create a geodatabase, the SQL Server administrator must do the following:
- Install SQL Server and configure the instance. How you configure the instance depends on the specific needs of your organization. Check the ArcGIS system requirements before you set up a geodatabase to be sure the database management system, ArcGIS, and hardware combinations you want to use are supported. Once you install SQL Server, be sure you configure the SQL Server instance to accept remote connections; by default, remote connections are not enabled. Consult Microsoft documentation for SQL Server installation and configuration information.
- Create a database.
- Set the SQL Server database options READ_COMMITTED_SNAPSHOT and ALLOW_SNAPSHOT_ISOLATION to ON. If the SQL Server administrator does not set these options to ON but grants the geodatabase administrator ALTER permissions in the database, the Enable Enterprise Geodatabase tool will change these settings on the database when it is run. If the SQL Server administrator does not set these options, and the geodatabase administrator does not have permissions sufficient to change them, geodatabase creation will fail.
- Add or create a login that is mapped to a database user named sde or to a database user that is the database owner.
- If using an sde-schema geodatabase, create a schema named sde in the database. Set this as the sde user's default schema.
- If using an sde-schema geodatabase, the sde user must have, at a minimum, the following privileges: CREATE FUNCTION, CREATE PROCEDURE, CREATE TABLE, and CREATE VIEW. For other privileges, see Privileges for SQL Server.
Configure an ArcGIS client
The geodatabase administrator can run a Python script from ArcGIS for Desktop (Standard or Advanced), ArcGIS Engine Runtime with the Geodatabase Update extension, or ArcGIS for Server (Standard or Advanced) to create a geodatabase. If you want to run the Enable Enterprise Geodatabase geoprocessing tool instead of a script, use ArcGIS for Desktop.
In most cases, your ArcGIS clients are installed on a different computer than SQL Server. Therefore, you must have a supported SQL Server Native Client installed on the ArcGIS client computer to connect to a SQL Server database. See Microsoft documentation to determine which version SQL Server Native Client you should install to connect to the version of SQL Server you are using.
You can download the SQL Server Native Client from My Esri or from the Microsoft Download Center. Follow the instructions from Microsoft to install the SQL Server Native Client on your client machine.
- Install the ArcGIS client you want to use for geodatabase creation.
Follow the instructions provided in the software installation guides.
- Install a SQL Server client on the ArcGIS client computer.
If you are installing the SQL Server native client on a 64-bit operating system, use the 64-bit SQL Server native client executable. This executable installs both the 32- and 64-bit client, which allows it to work with both 32- and 64-bit applications. If you run the 32-bit SQL Server native client on a 64-bit operating system, it will fail.
Your ArcGIS client is ready to connect to the database and create a geodatabase. Use one of the methods described in the next section.
Create a geodatabase
The geodatabase administrator can run the Enable Enterprise Geodatabase tool from ArcGIS for Desktop, or run a Python script from an ArcGIS for Desktop, ArcGIS for Server, or ArcGIS Engine client to create a geodatabase in the existing database.
Run the Enable Enterprise Geodatabase tool
You can run the Enable Enterprise Geodatabase tool from ArcGIS for Desktop to create a geodatabase in an existing SQL Server database.
- Start ArcMap or ArcCatalog.
-
Connect to the SQL Server database from the Catalog tree as the geodatabase administrator.
Be sure to save the user's password on the Database Connection dialog box.
- Right-click the database connection and click Enable Geodatabase.
The Enable Enterprise Geodatabase tool opens, and the Input Database Connection field is populated with the connection file name and location.
- Browse to the ArcGIS for Server authorization file that was created when you authorized ArcGIS for Server and add it to the Authorization File text box.
When you use the wizard to authorize ArcGIS for Server, a keycodes file is written to the server where the software is installed. If you authorized ArcGIS for Server on a Linux box, the keycodes file was created in /arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License<release>/sysgen. If you authorized on a Windows server, the file was created in Program Files\ESRI\License<release>\sysgen. If you have not already done so, authorize ArcGIS for Server to create this file.
- Click OK to run the tool.
A geodatabase is created in the database.
A log file for the geodatabase creation (GDBCreateGeodatabase<#>.log) is written to the directory specified for your %TEMP% variable on the computer where the tool is run. If you have any problems running the tool, check this log file to troubleshoot the problem.
Next, the database administrator can create a user who can load data into the geodatabase.
Run a Python script
If you want to create the geodatabase by running a script from an ArcGIS for Server, ArcGIS for Desktop, or ArcGIS Engine installation on a Windows machine, you can use the script provided here.
Follow these steps to run a Python script to create a geodatabase in an existing SQL Server database:
- Create a text file on the ArcGIS client machine and copy the following script into the file.
""" 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 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 " + arcpy.GetInstallInfo()['Version'] ) #Define help and options parser.add_option ("--DBMS", dest="Database_type", type="choice", choices=['SQLSERVER', 'ORACLE', 'POSTGRESQL', 'DB2','INFORMIX','DB2ZOS', ''], default="", help="Type of enterprise DBMS: SQLSERVER, 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) if (database_type == "SQLSERVER"): database_type = "SQL_SERVER" # 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 for Desktop Standard or Advanced, ArcGIS Engine with the Geodatabase Update extension, or ArcGIS for 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)
- Save the file with a .py extension.
- Run the script, providing options and information specific to your site.
In the following example, the file enable_gdb.py is run for database spdata on instance ssprod. The connection is made as the sde login with password Tgdbst@rtsh3r3. A keycodes file in the default ArcGIS Server location is specified to authorize the geodatabase.
enable_gdb.py --DBMS SQL_SERVER -i ssprod --auth DATABASE_AUTH -u sde -p Tgdbst@rtsh3r3 -D spdata -l \\Program Files\ESRI\License10.3\sysgen\keycodes
You now have a geodatabase in the SQL Server database.
A log file for the geodatabase creation (GDBCreateGeodatabase<#>.log) is written to the directory specified for your %TEMP% variable on the computer where the script is run.
Next, the database administrator can create a user who can load data into the geodatabase.