Data Control Language
Die Data Control Language (DCL; {{#invoke:Vorlage:lang|full|CODE=de|SCRIPTING=Latn|SERVICE=deutsch}}<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20161210134620
| {{#ifeq: 20161210134620 | *
| {{#if: 4.1.2 Daten abfragen – SELECT | {{#invoke:WLink|getEscapedTitle|4.1.2 Daten abfragen – SELECT}} | {{#invoke:Webarchiv|getdomain|http://www.dpunkt.de/leseproben/3-936121-02-8/Kapitel_4.1.2-4.1.4.pdf}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20161210134620}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: 4.1.2 Daten abfragen – SELECT | {{#invoke:WLink|getEscapedTitle|4.1.2 Daten abfragen – SELECT}} | {{#invoke:Webarchiv|getdomain|http://www.dpunkt.de/leseproben/3-936121-02-8/Kapitel_4.1.2-4.1.4.pdf}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20161210134620}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: 4.1.2 Daten abfragen – SELECT | {{#invoke:WLink|getEscapedTitle|4.1.2 Daten abfragen – SELECT}} | {{#invoke:Webarchiv|getdomain|http://www.dpunkt.de/leseproben/3-936121-02-8/Kapitel_4.1.2-4.1.4.pdf}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: 4.1.2 Daten abfragen – SELECT | {{#invoke:WLink|getEscapedTitle|4.1.2 Daten abfragen – SELECT}} | {{#invoke:Webarchiv|getdomain|http://www.dpunkt.de/leseproben/3-936121-02-8/Kapitel_4.1.2-4.1.4.pdf}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: 4.1.2 Daten abfragen – SELECT | {{#invoke:WLink|getEscapedTitle|4.1.2 Daten abfragen – SELECT}} | {{#invoke:Webarchiv|getdomain|http://www.dpunkt.de/leseproben/3-936121-02-8/Kapitel_4.1.2-4.1.4.pdf}} }} ({{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| {{#if: 4.1.2 Daten abfragen – SELECT | {{#invoke:WLink|getEscapedTitle|4.1.2 Daten abfragen – SELECT}} | {{#invoke:Webarchiv|getdomain|http://www.dpunkt.de/leseproben/3-936121-02-8/Kapitel_4.1.2-4.1.4.pdf}} }}
}}}}}}}}{{#if:
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20161210134620|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|http://www.dpunkt.de/leseproben/3-936121-02-8/Kapitel_4.1.2-4.1.4.pdf}}
|| {{#if: || }}
}}{{#if: 4.1.2 Daten abfragen – SELECT
| {{#if: {{#invoke:WLink|isBracketedLink|4.1.2 Daten abfragen – SELECT}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|http://www.dpunkt.de/leseproben/3-936121-02-8/Kapitel_4.1.2-4.1.4.pdf%7Carchiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://www.dpunkt.de/leseproben/3-936121-02-8/Kapitel_4.1.2-4.1.4.pdf%7C4}}%7Chttp}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|http://www.dpunkt.de/leseproben/3-936121-02-8/Kapitel_4.1.2-4.1.4.pdf }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}} aus SQL & MySQL – interaktiv, Seite 103, Andreas Buchmann und Ralf Smolarek, Verlag Omnigena, 2005, ISBN 3-936121-02-8</ref>) ist derjenige Teil einer Datenbanksprache, der verwendet wird, um Berechtigungen zu vergeben oder zu entziehen. DCL ist die Datenüberwachungssprache einer Datenbank.
Die DCL gibt es in unterschiedlichen Systemen in verschiedenen Ausprägungen. Beispiele:
- In SQL liegt sie (neben DDL und DML) in Form englischer Befehlsklauseln vor (z. B. GRANT SELECT, UPDATE ON INVOICE TO CLERK oder REVOKE EXECUTE ON NIGHTLY_JOB FROM DEVELOPERS).
- In den historischen IMS-Datenbanken wird die DCL komplett von der Datenschutzkomponente des Betriebssystems übernommen.
Einige Software-Hersteller verwenden den Begriff DCL nicht und zählen die Berechtigungsbefehle zur DDL.
SQL
In der für praktische Anwendungen wichtigen Structured Query Language lautet die Syntax wie folgt: <syntaxhighlight lang="SQL"> GRANT Operation+ ON Relation TO (PUBLIC|Benutzer) [WITH GRANT OPTION] REVOKE Operation+ ON Relation FROM (PUBLIC|Benutzer) </syntaxhighlight>
- Relation kann insbesondere auch eine Sicht sein.
- WITH GRANT OPTION erlaubt es den neuen Rechteinhabern, das Recht weiterzugeben.
- PUBLIC bezeichnet alle Benutzer.
- Der Datenbankadministrator (DBA) hat alle Rechte. Der Besitzer eines Objektes hat ebenfalls alle Rechte an diesem Objekt.
Die Kommandos zur Rechteverwaltung sind in SQL spezifiziert, nicht jedoch die zur Benutzerverwaltung. Daher implementiert jedes DBMS seine eigene Benutzerverwaltung, die Rollennamen und/oder Benutzergruppen kennen mag oder auch nicht.
- In modernen DBMS können Rechte auf alles Mögliche vergeben werden, nicht nur auf einzelne Tabellen.
Beispiele: <syntaxhighlight lang="sql"> GRANT SELECT, UPDATE ON TABLE Student TO groupx; </syntaxhighlight>
- Gestattet dem Benutzer bzw. der Gruppe groupx einen lesenden und ändernden Zugriff auf die Tabelle Student.
<syntaxhighlight lang="sql"> REVOKE EXECUTE ON PROCEDURE DSN8ED6 FROM PUBLIC; </syntaxhighlight>
- Entzieht allen nicht explizit berechtigten Benutzern das Recht, die Stored-Procedure DSN8ED6 auszuführen. Berechtigungen, die einem Benutzer oder einer Gruppe erteilt wurden, bleiben bestehen.
Siehe auch
Einzelnachweise
<references />