Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:mi_getexecuterights_ad

mi_GetExecuteRights_Ad

Dient der Überprüfung, ob der Benutzer, der diese Prozedur hier aufruft, (eine) bestimmte Prozedur(en) ausführen darf.

Anmerkung : Der Benutzer, für den Rechte ermittelt werden, darf NICHT in der „public“-Gruppe sein (sonst gibt es „-500“)

HTTP-MethodGET
HTTP-AuthOptional
Tags
Engine-Kategoriebasics
Engine-TypDaten-Ermittlung
Letzte Aktualisierung7.0.7 (2015-01-29)

Parameter

Name 1) Standard-Wert Beschreibung 2) SQL-Datentyp3) ab Version
ProcedureNameNULL Name einer Prozedur. „NULL“ übergeben, falls die Namen über die Tabelle „tempdb.dbo.AnyValues“ übergeben werden; alternativ kann auch eine „GetAdminProceduresForUserID“ angegeben werden (nur für den „Super“-Admin [Name = Datenbankname] !).
varchar(50)3.5.0
GetAdminProceduresForUserIDNULL ID eines „dStore“-Benutzers. Dieser Parameter kann nur vom „Super“-Admin (Name = Datenbankname) verwendet werden ! Bei „-1“ werden „UserID“s in „tempdb.dbo.OneID“ erwartet. Für den oder die Benutzer werden dann alle „Ad“-Prozeduren untersucht.
smallint3.5.4
ProcedureCategoryIDNULL ID einer Kategorie von Prozeduren (siehe do_GetProcedureCategories_Ad). Wird nur beachtet, falls „ProcedureName“ „NULL“ ist UND „GetAdminProceduresForUserID“ angegeben wurde. Dann werden nur die „Ad“-Prozeduren dieser Kategorie berücksichtigt.
tinyint3.5.4

Rückgabe

(parameterunabhängig)

Spaltenname Beschreibung SQL-Datentyp4) ab Version
ProcedureNameName einer Prozedur
varchar(50)3.5.0
ProcedureExistsHandelt es sich bei „ProcedureName“ auch um eine existierende Prozedure des „dStore“ ?
bit3.5.0
ExecuteRightHat der Benutzer „UserName“ Ausführungsrechte für die Prozedur „ProcedureName“ ?
bit3.5.0
ProcedureFunctionKurz-Beschreibung der Prozedur „ProcedureName“
varchar(255)3.5.4
UserNameEin „dStore“-Benutzer, der also in „UserInfo“ (siehe mi_GetUserInfo_Ad) registriert ist
varchar(50)3.5.20
UserIDID des Benutzers „UserName“ aus „UserInfo“
smallint5.0.0
UserExecRightOnDatabaseLevelAusführungsrecht für den Benutzer auf Datenbank-Ebene. Mögliche Werte :
- „NULL“ : es ist nichts (explizit) konfiguriert
- „0“ : explizites Ausführungsverbot
- „1“ : explizites Ausführungsrecht
tinyint5.0.0
GroupExecRightOnDatabaseLevelAusführungsrecht (auf Datenbank-Ebene) für die Gruppe, der der Benutzer angehört (mögliche Werte : s. „UserExecRightOnDatabaseLevel“)
tinyint5.0.0
PublicExecRightOnDatabaseLevelAusführungsrecht (auf Datenbank-Ebene) für die „public“-Gruppe (mögliche Werte : s. „UserExecRightOnDatabaseLevel“)
tinyint5.0.0
ProcedureIDID der Prozedur aus „RegisteredProcedures“. Falls „NULL“ ausgegeben wird, bedeutet dies, daß auf „dStore“-Ebene keine Rechte-Überprüfung stattfindet (entweder weil es keine „Ad“-Prozedur ist oder es sich beim „UserName“ um den „Super-Admin“ handelt).
smallint5.0.0
UserExecRightOndStoreLevelAusführungsrecht im „dStore“ für den Benutzer „UserID“. Mögliche Werte :
- „NULL“ : es ist nichts (explizit) konfiguriert
- „0“ : explizites Ausführungsverbot
- „1“ : explizites Ausführungsrecht
tinyint5.0.0
GroupExecRightOndStoreLevelGibt an, ob mindestens eine Gruppe existiert, in die der „dStore“-Benutzer „UserID“ eingeordnet ist, für die das Recht, die Prozedur direkt ausführen zu können, konfiguriert ist („1“) oder nicht („0“)
bit5.0.0
Sortierung der Rückgabe

(parameterunabängige Sortierung)

  • ProcedureName (aufsteigend)
  • UserName (aufsteigend)

Output-Parameter

Die Prozedur hat keine Output-Parameter.

Mögliche Return-Codes

Code Beschreibung Quelle 5)
-570Nur der Super-Admin darf diese Prozedur (mit diesen Parametern) ausführennur direkt
-569Der Benutzer hat kein Ausführungsrecht für die Prozedurnur indirekt
-567Die Prozedur darf z. Zt. nicht ausgeführt werdennur indirekt
-566Die Prozedur darf mit den übergebenen Parametern nicht ausgeführt werdennur indirekt
-535Das Datum liegt nicht in der Vergangenheitnur indirekt
-530Der Wert ist nicht konvertierbarnur indirekt
-510Der Benutzer ist nicht registriertnur indirekt
-504Es ist ein Problem aufgetreten, das nicht gelöst werden kann, Prozedur wird daher abgebrochennur indirekt
-502Die Parameter-Werte der Prozedur können nicht verarbeitet werden (kein passendes Trennzeichen)nur indirekt
-500Falsche Parameterdirekt und indirekt

XML-Schema

Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.

Historie

7.0.7 2015-01-291. Interne Änderung : Datentyp-Erweiterung des „ReferenceKey“ [für „_mi_StartProcedure“-Aufruf]
2. Besonderheit beachtet, daß Prozedur „_mi_GetLogicalReads“ nicht „dbo“ sondern „sa“ gehört
6.5.3 2013-03-18Anpassungen an den aktuellen Quellcode-Standard, u.a. wg. UTF8-Unterstützung
5.0.0 2004-12-211. Berücksichtigung der Tabellen „ProcedureExecRightsForUsers“, „ProcedureExecRightsForGroups“
2. Neue Rückgabespalten „ProcedureID“, „…ExecRightOnDatabaseLevel“, „…ExecRightOndStoreLevel“
3. Performance-Verbesserung
4. Fehler bzgl. Return-Code
4.0.14 2004-06-031. Aufruf der Prozeduren „_mi_StartProcedure“, „_mi_FinishProcedure“ und „_mi_ChooseParamValueSeperator“
2. Ausführen von „set transaction isolation level 1“ und „set rowcount 0“ zu Beginn der Prozedur
3. Konsequente Fehlerbehandlung
4.0.1 2003-05-161. „set forceplan“ an einigen Stellen eingesetzt
2. Fehlende Index-Angaben in einigen Fällen
4.0.0 2003-04-031. Einige Korrekturen bzgl. der internen Quellcode-Doku
2. Änderung des Klartextes für den Return-Code „-570“
3. Rückgabespalte „UserName“ fehlte in der Doku, außerdem sollte nach dieser sortiert werden !
3.5.20 2002-07-22
3.5.16 2002-04-25
3.5.5 2001-03-30
3.5.4 2001-03-11
3.5.2 2001-01-28
3.5.0 2000-11-23Erstmalig in dieser Version erstellt

Code-Snippets

Engine Playground

Der folgende Link öffnet in einem separaten Fenster den Engine Playground der fest mit dem dbap-demo System verbunden ist:

cURL

Unformatierte Ausgabe:

curl -X GET  'http://<partner>-<project>.dstore.de/default/engine/mi_GetExecuteRights_Ad'

Mit xmllint 6) formatierte Ausgabe:

curl -X GET  'http://<partner>-<project>.dstore.de/default/engine/mi_GetExecuteRights_Ad' | xmllint --format -
dStore_php
use dStore_php\WebService;
 
$service = new WebService\Service( WebService\Scheme::HTTP,'<partner>-<project>.dstore.de', 80);
 
$request = new WebService\Requests\Engine\Procedure\Request(
			new WebService\Requests\AccessData('default'),
	'mi_GetExecuteRights_Ad',
		array(
			// 'ProcedureName' => NULL,
			// 'GetAdminProceduresForUserID' => NULL,
			// 'ProcedureCategoryID' => NULL
		)
);
 
$service->execute($request);
 
			$xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument();
			$ResultSet = $xml_result->getRowsAsArray();
engine/execute

XML zur Ausführung mit der Methode engine/execute, z.B. per

curl --header 'Content-Type: application/xml' -X POST 'http://<partner>-<kunde>.dstore.de/default/engine/execute' -d '<xml-daten>'
<?xml version="1.0" encoding="UTF-8"?>
<ListOfBatches>
	<Batch No="0">
		<Procedure Name="mi_GetExecuteRights_Ad">
			<Parameters>
				<!-- <Parameter Name="ProcedureName">NULL</Parameter> -->
				<!-- <Parameter Name="GetAdminProceduresForUserID">NULL</Parameter> -->
				<!-- <Parameter Name="ProcedureCategoryID">NULL</Parameter> -->
			</Parameters>
		</Procedure>
	</Batch>
</ListOfBatches>
1)
Pflichtparameter sind unterstrichen
5)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
6)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/mi_getexecuterights_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)