602SQL-Úplná dokumentace Index  

Práva a subjekty práva v SQL

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:

Vytváření a rušení uživatelů, skupin a rolí

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.

Vztah mezi subjekty práv

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í: