Создать многопользовательскую базу геоданных (Create Enterprise Geodatabase) (Управление данными)

Уровень лицензии:BasicStandardAdvanced

Резюме

Инструмент Создать многопользовательскую базу геоданных (Create Enterprise Geodatabase) создает базу данных, хранилище и пользователя с правами администратора и владельца базы геоданных, с учетом особенностей используемой системы управления базой данных (СУБД). Он дает администратору базы геоданных полномочия, необходимые для создания базы геоданных, а затем создает базу геоданных в базе данных.

Использование

Синтаксис

CreateEnterpriseGeodatabase_management (database_platform, instance_name, {database_name}, {account_authentication}, {database_admin}, {database_admin_password}, {sde_schema}, {gdb_admin_name}, {gdb_admin_password}, {tablespace_name}, authorization_file)
ПараметрОбъяснениеТип данных
database_platform
[database_platform,...]

Укажите тип СУБД, к которой вы подключаетесь для создания базы геоданных.

  • OracleУказывает, что вы подключаетесь к экземпляру Oracle
  • PostgreSQLУказывает, что вы подключаетесь к кластеру базы данных PostgreSQL
  • SQL_ServerУказывает, что вы подключаетесь к экземпляру SQL Server Express
String
instance_name

Для SQL Server укажите имя экземпляра SQL Server. Для Oracle укажите имя TNS или строку подключения Oracle Easy. Для PostgreSQL – Введите имя сервера, где установлен PostgreSQL.

String
database_name
(дополнительно)

Этот параметр действителен только для PostgreSQL и SQL Server. Введите имя существующей предварительно настроенной базы данных или введите имя новой базы данных, которую нужно создать. Если инструмент создает базу данных на сервере SQL Server, размеры файлов либо будут совпадать с заданными вами размерами для базы данных моделей SQL Server, либо будут равны 500 Мб для файла MDF и 125 Мб для файла LDF, в зависимости от того, какой из размеров больше. Файлы MDF и LDF создаются в расположении SQL Server по умолчанию на сервере базы данных. Если вы создаете базу данных в PostgreSQL, база данных template1 будет использоваться в качестве шаблона для вашей базы данных.

String
account_authentication
(дополнительно)

Укажите тип авторизации для подключения к базе данных.

  • OPERATING_SYSTEM_AUTHСведения о входе в систему, предоставленные при входе на компьютер, на котором запускается инструмент, будут использоваться для аутентификации подключения к базе данных. Если ваша СУБД не настроена для использования аутентификации операционной системы, аутентификация завершится с ошибкой.
  • DATABASE_AUTHНеобходимо указать имя пользователя и пароль базы данных аутентификации в базе данных. Это метод аутентификации, используемый по умолчанию. Если ваша СУБД не настроена для аутентификации в базе данных, аутентификация завершится с ошибкой.
Boolean
database_admin
(дополнительно)

Если вы используете аутентификацию в базе данных, вы должны указать администратора базы данных. Для Oracle администратор базы данных – sys. Для Postgres это postgres superuser. Для SQL Server это член фиксированной серверной роли системного администратора.

String
database_admin_password
(дополнительно)

Введите пароль администратора базы данных. Если вы используете аутентификацию в базе данных, вы должны указать пароль для пользователя с правами администратора базы данных.

Encrypted String
sde_schema
(дополнительно)

Этот параметр относится только к SQL Server и указывает, создается ли база геоданных в схеме пользователя sde или в схеме dbo. При создании базы геоданных по схеме dbo, необходимо подключиться как пользователь dbo в экземпляре SQL Server. Поэтому если вы используете аутентификацию в операционной системе, в качестве имени для входа необходимо использовать dbo в экземпляре SQL Server.

  • SDE_SCHEMAРепозиторий базы геоданных принадлежит пользователю sde и хранится в схеме этого пользователя. Это значение используется по умолчанию.
  • DBO_SCHEMAРепозиторий базы геоданных хранится в схеме dbo базы геоданных.
Boolean
gdb_admin_name
(дополнительно)

При использовании PostgreSQL это значение должно быть равно sde. Если роль имени для входа sde не существует, этот инструмент создает ее и предоставляет права суперпользователя. Он также создает схему sde в базе данных. Если роль имени для входа sde существует, этот инструмент предоставляет для этой роли права суперпользователя, если они ей еще не предоставлены.

Если вы используете Oracle, значение по умолчанию – sde. Но при создании базы геоданных в пользовательской схеме в базе геоданных sde укажите имя пользователя, которому будет принадлежать база геоданных. Если пользователь отсутствует в СУБД, инструмент Создать корпоративную базу геоданных (Create Enterprise Geodatabase) создает пользователя и предоставляет ему права доступа, необходимые для создания и обновления базы геоданных, а также для удаления подключений с СУБД. Если пользователь уже существует, инструмент предоставит ему необходимые права доступа.

Если вы используете SQL Server и выбрали базу геоданных с sde-схемой, это значение должно быть равно sde. Инструмент создает имя для входа sde, пользователя базы данных и схему sde, после чего наделяет ее правами для создания базы геоданных и удаления подключений к экземпляру SQL Server. Если указана схема dbo, не задавайте значение этого параметра.

String
gdb_admin_password
(дополнительно)

Укажите пароль администратора базы геоданных. Если администратор базы геоданных уже существует в СУБД, введенный пароль должен совпадать с существующим паролем. Если администратор базы геоданных не существует, введите допустимый пароль базы данных для нового пользователя. Пароль должен соответствовать требованиям парольной политики СУБД.

Пароль – это строка, зашифрованная инструментом геообработки.

Encrypted String
tablespace_name
(дополнительно)

Этот параметр действителен только для Oracle и PostgreSQL. Для Oracle проделайте следующее:

  • Введите имя существующего табличного пространства (tablespace) для его использования по умолчанию пользователем sde.
  • Введите допустимое имя и в местоположении Oracle по умолчанию будет создано табличное пространство емкостью 400 МБ и установлено как табличное пространство пользователя по умолчанию.
  • Если вы не укажете табличное пространство, будет создано пространство SDE_TBS (400 MБ) и установлено в качестве табличного пространства по умолчанию для пользователя sde.

Для PostgreSQL необходимо либо ввести имя существующего табличного пространства (tablespace), которое будет использоваться как имя табличного пространства по умолчанию, либо оставить это поле пустым. Этот инструмент не создает табличное пространство в PostgreSQL. Если не указать значение этого параметра, база данных создается в табличном пространстве pg_default в PostgreSQL.

String
authorization_file

Укажите путь и имя файла кодов, созданного при авторизации ArcGIS for Server Enterprise. Этот файл расположен в папке \\Program Files\ESRI\License<release#>\sysgen в Windows и в директории /arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License<release#>/sysgen в Linux. Если данная процедура еще не выполнена, авторизуйте ArcGIS for Server для создания этого файла.

File

Пример кода

Пример CreateGeodatabase 1

Следующий скрипт создает базу геоданных в базе данных Oracle. Он также создает пользователя sde и табличное пространство по умолчанию (sdetbs) для этого пользователя. Файл ключей расположен на удаленном сервере Linux.

#Import arcpy module
import arcpy

arcpy.CreateEnterpriseGeodatabase("ORACLE", "ora11g:1521/elf", "", "DATABASE_AUTH", "sys", "manager", "", "sde", "supersecret", "sdetbs", "//myserver/mymounteddrive/arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License10.1/sysgen/keycodes")
Пример CreateGeodatabase 2

Этот скрипт подключается к экземпляру SQL Server (tor\ssinstance) для создания базы данных sp_data и базы геоданных со схемой sde в этой базе данных. Для подключения используется аутентификация средствами операционной системы. Файл ключей расположен на удаленном сервере Windows.

#Import arcpy module
import arcpy

arcpy.CreateEnterpriseGeodatabase("SQLSERVER", "tor\ssinstance1", "sp_data", "OPERATING_SYSTEM_AUTH", "", "", "SDE_SCHEMA", "sde", "sde", "", "//myserver/Program Files/ESRI/License10.1/sysgen/keycodes")
Пример CreateGeodatabase 3

Этот скрипт подключается к кластеру базы данных PostgreSQL на сервере feldspar. Пользователь sde создается для базы данных pggdb в существующем табличном пространстве gdbspace. Файл ключей расположен на локальном сервере Linux.

#Import arcpy module
import arcpy

arcpy.CreateEnterpriseGeodatabase("POSTGRESQL", "feldspar", "pggdb", "DATABASE_AUTH", "postgres", "averturis", "", "sde", "nomira", "gdbspace", "/arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License10.1/sysgen/keycodes")
Автономный скрипт CreateGeodatabase

Приведенный автономный скрипт Python позволит вам ввести необходимую для вашего сайта информацию с помощью опций.

"""
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 release")

#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")
# 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"
				sys.exit(3)
			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)

Параметры среды

Этот инструмент не использует параметры среды геообработки

Связанные темы

Информация о лицензировании

ArcGIS for Desktop Basic: Нет
ArcGIS for Desktop Standard: Да
ArcGIS for Desktop Advanced: Да
9/10/2013