sql >> Database >  >> RDS >> Oracle

Oracle Hoe CREATE ELKE DIRECTORY toekennen met de beperking dat alle directory's in een bepaalde directory moeten worden aangemaakt?

Dat hangt ervan af, als u wilt beperken tot welke OS-directory's Oracle toegang heeft via utl_file-opdrachten, kunt u de utl_file_dir instellen parameter. Helaas is deze parameter systeembreed, dus u kunt deze parameter niet toekennen/intrekken voor een specifieke gebruiker. Houd er ook rekening mee dat als u wijzigingen aanbrengt in deze parameter, deze wijzigingen pas van kracht worden als de Oracle-database opnieuw is opgestart:

alter system set utl_file_dir = '/foo/bar' scope=spfile;
shutdown immediate;
startup open;

Raadpleeg de 12.1 Oracle Docs voor meer informatie over utl_file_dir .

Dat gezegd hebbende, als u echt wilt beperken wie Oracle-directories kan maken tot specifieke OS-directory's, zou een procedure geschikt zijn voor die taak, omdat u hierdoor een fijnmazigere controle kunt hebben (en kunt beperken wie de zeer krachtige create any directory privilege aan de eigenaar van de procedure):

sqlplus kjohnston

create or replace procedure mydircreate (p_dir varchar2)
as
  ex_custom EXCEPTION;
  PRAGMA EXCEPTION_INIT( ex_custom, -20001 );
begin
  if lower(p_dir) not like '/foo/bar/%' then
    raise_application_error( -20001, 'Not authorized' );
  end if;

  execute immediate 'create or replace directory mydir as ''' || p_dir || '''';
end mydircreate;

create user testuser identified by <password>;
grant create session to testuser;
grant execute on kjohnston.mydircreate to testuser;

exit;

sqlplus testuser

SQL> exec kjohnston.mydircreate('mydir', '/randomdir');
ORA-20001: Not authorized

SQL> exec kjohnston.mydircreate('mydir', '/foo/bar/baz');
PL/SQL procedure successfully completed.


  1. mysql selecteer om spaties terug te geven voor alles behalve de eerste rij van herhalende kolommen

  2. LAGER LIKE vs iLIKE

  3. mySql:haalt de rijen op waar het aantal woorden in de cel (gescheiden door komma's) dezelfde waarde heeft als een overeenkomende cel

  4. 7 gratis hulpprogramma's voor het maken van databasediagrammen voor drukke gegevensmensen