Ich habe eine 12c Oracle-Datenbank. Ich habe einen Admin-Benutzer namens CIDBADMIN. Ich benutze diesen Benutzer, um sich bei der Datenbank anzumelden und Objekte usw. in SAMPLE_SCHEMA zu installieren.Tabellenberechtigungen mit Tabelle, die mit einem 'geänderten Schema' erstellt wurde
Der folgende Code:
WHENEVER SQLERROR EXIT SQL.SQLCODE;
SET SERVEROUTPUT on;
ALTER SESSION SET CURRENT_SCHEMA=SAMPLE_SCHEMA;
create table TESTTBL ("some_field" VARCHAR2(1024) NOT NULL);
grant all on TESTTBL to CIDBADMIN;
Gibt den Fehler:
Error starting at line : 7 in command -
grant all on TESTTBL to CIDBADMIN
Error report -
SQL Error: ORA-01929: no privileges to GRANT
01929. 00000 - "no privileges to GRANT"
*Cause: "ALL" was specified but the user doesn't have any privileges
with the grant option.
*Action: Don't grant privileges on that object.
Commit
Ich bin nicht sicher, wie ich das korrigieren sollte. Ich habe die Dokumentation überprüft und google und kann nicht herausfinden, was ich tun kann, um dies zu korrigieren. Ich möchte eine Lösung, bei der ich mich nicht als SAMPLE_SCHEMA-Benutzer bei der Datenbank anmelden muss.
Edit 001: Ich habe herausgefunden, dass ich, wenn ich mich als CIDBADMIN mit als sysdba Rolle anmelde, in der Lage bin, das Grant auszuführen. Dies löst mein Problem, aber ich würde gerne wissen, welche genaue Berechtigung ich CIDBADMIN gewähren muss, um dies zu ermöglichen und die Notwendigkeit, sich als sysdba anzumelden, zu beseitigen.
Welche Rollen und Privilegien hat Ihr 'admin' Benutzer bereits? –
Obwohl Sie das Schema geändert haben, hat sich der Benutzer nicht geändert. Das heißt, Sie erstellen eine Tabelle im 'sample_schema'' cidbadmin' Benutzer. Und du darfst dir keine Privilegien gewähren/entziehen. Nachdem Sie das Objekt erstellt haben, müssen Sie sich als 'sample_schama' verbinden und dann dem Benutzer' cidbadmin' die Objektrechte erteilen. – JSapkota
Alex, ich kann dem Admin-Benutzer jedes Privileg gewähren, das ich brauche. Ich habe es schon eine riesige Menge bewilligt. Ich muss nur wissen, was es dafür braucht. Jaapkota, ich möchte nicht, dass meine ci-Maschine Zugang zu allen Passwörtern für alle Schemas benötigt, also ist das Verbinden als sample_schema keine gute Lösung – Robert3452