Rechten uitdelen, een standaard klus?

Rechten uitdelen is een standaard klus voor veel DBA’s maar let u ook op wat u doet? In de huidige tijd met de toenemende veiligheidseisen verdient het aanbeveling goed te kijken wat u uitdeelt of wat er gevraagd wordt uit te delen. Laten we eens een praktijkvoorbeeld nemen waar wij onlangs tegen aanliepen:

GRANT CREATE ANY VIEW,
CREATE ANY TRIGGER,
CREATE ANY INDEX,
CREATE TYPE,
CREATE TABLE,
CREATE INDEXTYPE,
CREATE LIBRARY,
CREATE PUBLIC SYNONYM,
CREATE OPERATOR,
SELECT ANY TABLE,
DROP ANY VIEW,
DROP ANY INDEX,
DROP PUBLIC SYNONYM,
ALTER ANY INDEX,
ADMINISTER DATABASE TRIGGER,
CREATE SESSION,
CREATE TRIGGER,
CREATE PROCEDURE,
CREATE VIEW,
CREATE SEQUENCE
TO <APP_OWNER>;

GRANT EXECUTE ON DBMS_PIPE TO public;
GRANT EXECUTE ON DBMS_LOCK TO public;
GRANT EXECUTE ON DBMS_UTILITY TO public;
GRANT EXECUTE ON DBMS_SQL TO public;
GRANT EXECUTE ON DBMS_LOB TO public;
GRANT EXECUTE ON UTL_RAW TO public;
GRANT EXECUTE ON DBMS_CRYPTO TO <APP_OWNER>;

Op het moment dat je de correcte veiligheid settings van je database van belang vindt is hier wel wat op aan te merken. Laten we het script eens stapsgewijs doorlopen.

  • Fout 1
    Op regel 1 van het script gaat het al fout. Het toekennen van ‘ * any *’ privileges is een van de grootste fouten met het toekennen van rechten. Wil je echt iemand rechten geven op alle schema’s/objecten in de database.
  • Fout 2
    Het administer database privilege stelt je in staat triggers op database niveau (in tegenstelling tot object niveau) te beheren. Hiermee kan het gedrag van de gehele database, alle sessies, beïnvloed worden. Niet een recht dat je aan een applicatie owner wil toekennen.
  • Fout 3
    Grants aan public zijn niet meer van deze tijd. Je deelt niet alleen rechten uit aan de de huidige gebruikers maar ook naar alle potentiële nieuwe gebruikers. Daarnaast kan je stellen dat objecten als het package dbms_sql misschien niet het beste voorbeeld is om daar breed rechten op toe te kennen.

Het is duidelijk dat rechten verzoeken, zelfs als ze direct van de applicatie leverancier komen, niet echt voldoen aan de moderne eisen van minimale privileges.
We hopen dat we je met dit artikel, “Rechten uitdelen een standaard klus?”, op weg bent geholpen. Mocht je hulp nodig hebben of je hebt vragen n.a.v. dit artikel, laat het ons dan weten.

Scroll to Top