SQL - DCL

Z Kiwiki
Verzia z 17:13, 22. december 2010, ktorú vytvoril Juraj (diskusia | príspevky)
Skočit na navigaci Skočit na vyhledávání
Imbox draft.png
Toto je projekt, na ktorom sa ešte stále pracuje!!

Aj keď sú v tomto dokumente použiteľné informácie, ešte nie je dokončený. Svoje návrhy môžete vyjadriť v diskusii o tejto stránke.

Data Control Language (DCL) je podskupina príkazov SQL, ktoré riadia prístup do databázy, objektov a dát.

DCL poskytuje ochranu databázy pred poškodením. Poskytuje možnosť zabezpečenia a ochrany integrity dát databáz. Stupeň ochrany je v závislý od samotného nastavenia používateľských práv a prístupov. Patri sem štyri príkazy: GRANT, REVOKE, ROLLBACK a COMMIT.

Prideľovanie oprávnení

Databázový systém mySQL je viacpoužívateľský, čo znamená že sú vňom definovaný používatelia, ktorí majú určité oprávnenia nad databázovými objektami. MySQL definuje 2 základné skupiny používateľov

  1. používateľ s úplnými oprávneniami
  2. používateľ s obmedzenými oprávneniami

Ad 1: Po inštalácii servera MySQL je vytvorený používateľ root, ktorému sú pridelené všetky oprávnenia. Teda vytvárať, modifikovať a mazať databázové objekty. Pod databázovými objektami sa myslí samotné databázy, tabuľky, ale aj používatelia.

Ad 2: Používateľovi s obmedzenými oprávneniami sú odopreté niektoré akcie, ako napríklad vytváranie nových databáz, používateľov, ďalej jednotlivé databázy môžu byť pridelené len na čítanie, aj na zapisovanie, alebo žiaden prístup k databáze.

Jednou z možností ako správne nastaviť používateľské oprávnenia je pravidlo:

  • novému používateľovi zakážem všetko
  • a povolím mu prístup len k nevyhnutným databázam (resp. k jeho databáze).


GRANT

Príkaz GRANT udeľuje oprávnenia (práva, ktoré majú byť pridelené) existujúcim používateľom v databázovom systéme. Syntax je príkazu GRANT [1]nasledujúca:

GRANT
    priv_type [(column_list)]
      [, priv_type [(column_list)]] ...
    ON [object_type] priv_level
    TO user_specification [, user_specification] ...
    [REQUIRE {NONE | ssl_option [[AND] ssl_option] ...}]
    [WITH with_option ...]

object_type:
    TABLE
  | FUNCTION
  | PROCEDURE

priv_level:
    *
  | *.*
  | db_name.*
  | db_name.tbl_name
  | tbl_name
  | db_name.routine_name

kde:

  • column_list - doplniť
  • object_type - doplniť
  • priv_level - doplniť
  • priv_type - Typ oprávnenia. Zoznam najpoužívanejších oprávnení je v nasledujúcej tabuľke.
Oprávnenie Vysvetlenie
ALL [PRIVILEGES] Pridelí všetky oprávnenia.
ALTER Povolí použitie príkazu ALTER TABLE
ALTER ROUTINE Povolí zmenu a zmazanie uložených procedúr.
CREATE Povolí vytváranie nových databáz a tabuliek.
CREATE ROUTINE Povolí vytváranie uložených procedúr.
CREATE USER Povolí použitie príkazu CREATE USER, DROP USER, RENAME USER, a REVOKE ALL PRIVILEGES
CREATE VIEW Povolí vytvorenie a modifikovanie pohľadov.
DELETE Povolí použitie príkazu DELETE
DROP Povoľuje mazanie databáz, tabuliek a pohľadov.
EXECUTE Povoľuje spúšťanie uložených procedúr.
INSERT Povolí použitie príkazu INSERT
SELECT Povolí použitie príkazu SELECT
SHOW DATABASES Povolí použitie príkazu SHOW DATABASES pre zobrazenie všetkých databáz.
SHOW VIEW Povolí použitie príkazu SHOW CREATE VIEW, ktorý zobrazí SQL príkaz ktorým bol pohľad vytvorený.
SUPER Povolí použitie ďalších administrtívnych operácií ako CHANGE MASTER TO, KILL, PURGE BINARY LOGS, SET GLOBAL, a programu mysqladmin.
TRIGGER Povolí operácie súvisiace s automatickým spúšťaním procedúr (triggery).
UPDATE Povolí použitie príkazu UPDATE
USAGE Synonymum pre Synonym "no privileges"

REVOKE

Príkaz REVOKE odstráni nastavených prístupových práv alebo oprávnenie k databáze objektov. REVOKE

     REVOKE privilege_name 
     ON object_name 
     FROM {user_name |PUBLIC |role_name}


Zdroje a odkazy