ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Hilfe
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Die Mapping-Plattform für Ihre Organisation

ArcGIS Desktop

Ein vollständiges professionelles GIS

ArcGIS Enterprise

GIS in Ihrem Unternehmen

ArcGIS Developers

Werkzeuge zum Erstellen standortbezogener Apps

ArcGIS Solutions

Kostenlose Karten- und App-Vorlagen für Ihre Branche

ArcGIS Marketplace

Rufen Sie Apps und Daten für Ihre Organisation ab.

  • Dokumentation
  • Support
Esri
  • Anmelden
user
  • Eigenes Profil
  • Abmelden

ArcMap

  • Startseite
  • Erste Schritte
  • Karte
  • Analysieren
  • Verwalten von Daten
  • Werkzeuge
  • Erweiterungen

Rolle erstellen

  • Zusammenfassung
  • Verwendung
  • Syntax
  • Codebeispiel
  • Umgebungen
  • Lizenzinformationen

Zusammenfassung

Erstellt eine Datenbankrolle und fügt der Rolle Benutzer hinzu bzw. entfernt diese daraus.

Verwendung

  • Dieses Werkzeug kann nur mit Oracle, Microsoft SQL Server oder PostgreSQL verwendet werden.

  • Sie können keine Trennzeichen wie doppelte Anführungszeichen verwenden, wenn Sie die Rolle angeben. Daher kann die Rolle nur Zeichen enthalten, die vom zugrunde liegenden Datenbankmanagementsystem unterstützt werden, wenn sie ohne Trennzeichen bereitgestellt wird.

Syntax

arcpy.management.CreateRole(input_database, role, {grant_revoke}, {user_name})
ParameterErklärungDatentyp
input_database

Die Verbindungsdatei für eine Datenbank oder Enterprise-Geodatabase. Herstellen einer Verbindung als Datenbank-Administratorbenutzer.

Workspace
role

Der Name der zu erstellenden Datenbankrolle. Sollte die Rolle bereits vorhanden sein, geben Sie den Namen der Rolle ein, der Sie Benutzer hinzufügen möchten oder aus der Sie Benutzer entfernen möchten.

String
grant_revoke
(optional)

Gibt an, ob Sie die Rolle einem Benutzer oder einer Benutzerliste hinzufügen möchten oder ob Sie einen Benutzer oder eine Benutzerliste aus der Rolle entfernen möchten.

  • GRANT —Weist die Rolle den angegebenen Benutzern hinzu. Dies ist die Standardeinstellung.
  • REVOKE —Widerruft die Rolle für die angegebenen Benutzer.
String
user_name
(optional)

Der Name des Benutzers, dessen Rollenzugehörigkeit Sie ändern möchten. Um mehrere Benutzer anzugeben, geben Sie die Benutzernamen durch Kommas getrennt (keine Leerzeichen) ein.

String

Abgeleitete Ausgabe

NameErklärungDatentyp
out_result

Gibt an, ob das Werkzeug erfolgreich beendet wurde.

Boolean

Codebeispiel

CreateRole – Beispiel 1 (Python-Fenster)

Erstellt eine Datenbankrolle mit dem Namen "Editors".

import arcpy
arcpy.CreateRole_management("C:\\gdbconnections\\gdb_oracle.sde", "editors")
CreateRole – Beispiel 2 (Python-Fenster)

Erstellt die Datenbankgruppenrolle "Drafters" und weist sie den Benutzern "eng1" und "eng2" zu.

import arcpy
arcpy.CreateRole_management("C:\\dbconnections\\db_postg.sde", "drafters", 
                            "GRANT", "eng1,eng2")
CreateRole – Beispiel 3 (Python-Fenster)

Weist die Datenbankrolle "Readers" dem Benutzer-Auditor hinzu.

import arcpy
arcpy.CreateRole_management("C:\\connectionfiles\\db_ss.sde", "readers", 
                            "GRANT", "auditor")
CreateRole – Beispiel 4 (Python-Fenster)

Widerruft die Datenbankrolle "Creators" für die Datenbankbenutzer intern1, intern2 und intern3.

import arcpy
arcpy.CreateRole_management("D:\\myconnectionfiles\\mygdb.sde", "creators", 
                            "REVOKE", "intern1,intern2,intern3")
CreateRole – Beispiel 5 (eigenständiges Skript)

Mit dem folgenden eigenständigen Python-Skript können Sie spezifische Informationen für Ihre Site über Optionen angeben, um folgende Schritte auszuführen:

  • Erstellen einer Datenbankverbindungsdatei, die als input_database verwendet wird
  • Erstellen einer Datenbankrolle
  • Hinzufügen von Benutzern zu der neuen Rolle

"""
Name: create_database_role.py
Description: Provide connection information to a database user.
Type create_database_role.py -h or create_database_role.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 ("-o", dest="operation", type ="choice", choices=['GRANT', 'REVOKE'], default='GRANT', help="Specify which operation to perform: grant to or revoke from the user(s). Options (case-sensitive):  GRANT, REVOKE.  Default=GRANT")
parser.add_option ("-r", dest="role", type="string", default="", help="role to be granted to the user")
parser.add_option ("-u", dest="userlist", type="string", default="", help="List of users to grant to or revoke from, separated by comma.")
# 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
	userlist = options.userlist
	role = options.role
	operation = options.operation

	
	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 (role == ""):
		print " \n%s: error: \n%s\n" % (sys.argv[0], "Role name (-r) must be specified.")
		parser.print_help()
		sys.exit(3)			
	
	if(database_type == "SQL_SERVER"):
		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( dbms_admin == ""):
			print "\n%s: error: %s\n" % (sys.argv[0], "DBMS administrator must be specified!")
			sys.exit(3)

	# 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 a role in an enterprise geodatabase or database 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("+++++++++")

	# Local variables
	instance_temp = instance.replace("\\","_")
	instance_temp = instance_temp.replace("/","_")
	instance_temp = instance_temp.replace(":","_")
	Conn_File_NameT = instance_temp + "_" + database + "_" + dbms_admin   

	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)

	try:
		print "\nCreating Database Connection File...\n"	
		# Process: Create Database Connection File...
		# Usage:  out_file_location, out_file_name, DBMS_TYPE, instnace, account_authentication, username, password, database, 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=dbms_admin, password=dbms_admin_pwd, 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")

		print "Creating database role...\n"
		arcpy.CreateRole_management(input_database=Connection_File_Name_full_path, grant_revoke=operation, role=role,  user_name=userlist)
		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)

Umgebungen

  • Aktueller Workspace

Lizenzinformationen

  • Basic: Nein
  • Standard: Ja
  • Advanced: Ja

Verwandte Themen

  • Überblick über das Toolset "Geodatabase-Verwaltung"
  • Datenbankbenutzer erstellen

ArcGIS Desktop

  • Startseite
  • Dokumentation
  • Support

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Über Esri

  • Über uns
  • Karriere
  • Esri Blog
  • User Conference
  • Developer Summit
Esri
Wir sind an Ihrer Meinung interessiert.
Copyright © 2021 Esri. | Datenschutz | Rechtliches