Databázové systémy 1 (DB1) - Oprávněnost přístupu, uživatele, role a práva v systému
Uživatel může mít více rolí. Kdo vytvoří tabulku, tak tomu patří.
Přiřazení práv GRAND
ALL RIGHTS – všechna práva
ALL NOT
ON
TO
[WITH GRANT OPTION] – práva může předávat dál
Odebrání práv – REVOKE
Privilegia: READ, INSERT, UPDATE, DELETE, DROP
Pokud odebereme práva uživateli s GRANT OPTION, odeberou se i všem, komu je předal dál – řešeno pomocí časových značek v tabulce práv.
Uživatelé – USERS
Vytvoření nového uživatele
CREATE USER uživatel
IDENTIFIED [BY heslo | EXTERNALLY |
GLOBALLY AS ‘external_name’]
[DEFAULT TABLESPACE tabulkovy_prostor]
[TEMPORARY TABLESPACE tabulkovy_prostor ]
[QUOTA (N | [ K| M] UNLIMITED) ON TABLESPACE]
[PROFILE profil]
[ACCOUNT [LOCK|UNLOCK]
[PASSWORD EXPIRE]
Nutno určit minimálně:
- Jméno a zpusob identifikace
- Typ overení v klausuli IDENTIFIED: Global, External, Password
Vynucená změna po prvním přihlášení
PASSWORD EXPIRE
Změna hesla
ALTER USER jméno_uživatele IDENTIFIED BY nové_heslo
Role a práva uživatelů
GRANT
Umož?uje přiřadit či změnit
- Aktuální prirazení rolí – GRANT ROLE TO uživatel | PUBLIC [WITH ADMIN OPTION]
- Aktuální prirazení oprávnení – GRANT SYSTEM_PRIVILEG TO uživatel | PUBLIC [WITH ADMIN OPTION]
- Oprávnění typu SELECT nebo UPDATE může poskytnout pouze vlastník objektu, nebo databázový administrátor (i ten však musí být oprávněn) – GRANT oprávnení ON objekt TO jméno_administrátora [WITH GRANT OPTION]
Klausule WITH GRANT OPTION znamená, že uživatel může poskytnout toto oprávnění i ostatním uživatelům nebo rolím.
REVOKE
Pomocí příkazu REVOKE odeberete roli nebo oprávnění uživateli nebo roli:
REVOKE systémové_právo | role FROM uživatel |role| PUBLIC ;
Pomocí následujícího příkazu objektová oprávnění nebo roli:
REVOKE objektové_právo | ALL ON schéma.objekt FROM uživatel |role| PUBLIC CASCADE CONSTRAINT;
ROLE
Vytvoření nové role (sady oprávnění)
CREATE ROLE role [NOT IDENTIFIED | IDENTIFIED]
[BY heslo | EXTERNALLY|GLOBALLY] NOT IDENTIFIED – bez zadání hesla
IDENTIFIED EXTERNALLY pomocí operačního systému
IDENTIFIED GLOBALLY – jedinečná role v několika databázích
Příkaz může zadávat buď oprávněný uživatel nebo administrátor databáze. Přiřazení role uživatelům (po jejím vytvoření): GRANT role TO uživatel;
