|
![]() | 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 | ![]() |