|
|
| Databázové tabulky | Jazyk SQL a jeho implementace | Funkce |
Z hlediska editace subjektů práv lze rozlišit tyto činnosti:
Z hlediska vztahu práv k uživateli (resp. subjektu práv) lze rozlišit tyto činnosti:
GRANT a REVOKE.Uživatele lze vytvořit SQL příkazem CREATE USER, zrušit příkazem DROP USER. Nastavit přístupové heslo uživateli lze pomocí funkce Set_password.
Skupinu uživatelů lze vytvořit SQL příkazem CREATE GROUP, zrušit příkazem DROP GROUP.
Roli v aplikaci lze vytvořit SQL příkazem CREATE ROLE, zrušit příkazem DROP ROLE.
Zjistit nebo změnit vztah mezi dvěma subjekty práv (např. zařadit uživatele do skupiny, obsadit skupinu do role) umožňují funkce Set_membership a Get_membership
Příklad:
PROCEDURE `INIT_SET_PRIVILS`();
/*******************************************/
// nastaví všem tabulkám v aplikaci práva číst, psát, vkládat a mazat záznamy
// pro roli Internet_user
BEGIN
DECLARE sqlstr CHAR(500);
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
BEGIN
CALL log_write('Init_set_privils - '||sqlstate||' '||Int2str(sqlcode));
END;
FOR row AS INSENSITIVE CURSOR FOR
SELECT T2.tab_name // seznam tabulek
FROM OBJTAB T1, TABTAB T2
WHERE T1.APL_UUID=T2.APL_UUID
AND (Ord(T1.category)=CATEG_APPL) AND (t1.obj_name=CURRENT_APPLICATION)
DO
SET sqlstr = 'GRANT DELETE, INSERT, SELECT, UPDATE ON '||row.tab_name||' TO ROLE INTERNET_USER';
CALL SQL_execute(sqlstr); // provést dynamicky sestavený příkaz
END FOR;
END
Seznam subsekcí:
| Databázové tabulky | Jazyk SQL a jeho implementace | Funkce |