Oracle User-Management Skript
Hallo,
ich habe vor mir eine Oracle 11g Datenbank und möchte für den Nachfolger meiner seits ein Skript erstellen, welches mit einfachen Schritten einen Nutzer anlegt, Rechte setzt und einen Trigger für diesen hinzufügt.
Folgender Aufbau noch als mein Ansatz:
Grund ist, dass sich mein Nachfolger nicht besonders gut auskennen wird, deshalb wollte ich, dass er nur die Variablen neu belgen muss und anschließend das Skript ausführt und alles erledigt wird. Problem ist nun (zumindest ist das meine Meinung), dass ich bei den Variablen kein "varchar2" nehmen darf da dies mit der "CREATE USER" Anweisung nicht hinhaut.
Vielen Dank schonmal für die Antworten!!
MfG
ich habe vor mir eine Oracle 11g Datenbank und möchte für den Nachfolger meiner seits ein Skript erstellen, welches mit einfachen Schritten einen Nutzer anlegt, Rechte setzt und einen Trigger für diesen hinzufügt.
Folgender Aufbau noch als mein Ansatz:
DECLARE
USERNAME VARCHAR2(200) := ;
USERPASS VARCHAR2(200) := ;
DEFAULTTABLESPACE VARCHAR2(200) := ;
DEFAULTTEMPSPACE VARCHAR2(200) := ;
DEFAULTPROFILE VARCHAR2(200) := ;
LOGINSCHEMA VARCHAR2(200) := ;
BEGIN
CREATE USER USERNAME IDENTIFIED BY USERPASS DEFAULT TABLESPACE DEFAULTTABLESPACE TEMPORARY TABLESPACE DEFAULTTEMPSPACE;
ALTER USER USERNAME profile DEFAULTPROFILE;
GRANT CONNECT TO USERNAME;
-- Give the user the table rigths
-- Give the user the execute rigths
Grund ist, dass sich mein Nachfolger nicht besonders gut auskennen wird, deshalb wollte ich, dass er nur die Variablen neu belgen muss und anschließend das Skript ausführt und alles erledigt wird. Problem ist nun (zumindest ist das meine Meinung), dass ich bei den Variablen kein "varchar2" nehmen darf da dies mit der "CREATE USER" Anweisung nicht hinhaut.
Vielen Dank schonmal für die Antworten!!
MfG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 20.04.2010 um 20:40:36 Uhr
Verschoben von "Programmiersprachen" gen "Datenbanken".
Content-ID: 140105
Url: https://administrator.de/contentid/140105
Ausgedruckt am: 26.11.2024 um 16:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo,
Du musst das mit "Dynamisches SQL" machen und so in etwa wie folgt aufdröseln:
Gruß René
Du musst das mit "Dynamisches SQL" machen und so in etwa wie folgt aufdröseln:
DECLARE
USERNAME VARCHAR2(200) := 'ABC';
USERPASS VARCHAR2(200) := 'DEF';
DEFAULTTABLESPACE VARCHAR2(200) := 'DEF_TBS';
DEFAULTTEMPSPACE VARCHAR2(200) := 'DEF_TEMP';
DEFAULTPROFILE VARCHAR2(200) := 'DEF_PROF';
LOGINSCHEMA VARCHAR2(200) := 'LOG_SCHEMA';
S1 VARCHAR2(1024);
BEGIN
S1 := 'CREATE USER ' || USERNAME || ' IDENTIFIED BY ' || USERPASS ||' DEFAULT TABLESPACE ' || DEFAULTTABLESPACE || ' TEMPORARY TABLESPACE ' || DEFAULTTEMPSPACE;
execute immediate s1;
S1 := 'ALTER USER ' || USERNAME || ' profile ' || DEFAULTPROFILE;
execute immediate s1;
S1 := 'GRANT CONNECT TO ' || USERNAME;
execute immediate s1;
END;
Gruß René