SQL - DCL

Z Kiwiki
Verzia z 23:54, 7. november 2010, ktorú vytvoril Juraj (diskusia | príspevky) (Vytvorená stránka „{{Skripta_dbs}} {{Draft}} 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 pr…“)
(rozdiel) ← Staršia verzia | Aktuálna úprava (rozdiel) | Novšia verzia → (rozdiel)
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.
Privilege Meaning
ALL [PRIVILEGES] Grant all privileges at specified access level except GRANT OPTION
ALTER Enable use of ALTER TABLE
ALTER ROUTINE Enable stored routines to be altered or dropped
CREATE Enable database and table creation
CREATE ROUTINE Enable stored routine creation
CREATE TABLESPACE Enable tablespaces and log file groups to be created, altered, or dropped
CREATE USER Enable use of CREATE USER, DROP USER, RENAME USER, and REVOKE ALL PRIVILEGES
CREATE VIEW Enable views to be created or altered
DELETE Enable use of DELETE
DROP Enable databases, tables, and views to be dropped
EXECUTE Enable the user to execute stored routines
INSERT Enable use of INSERT
SELECT Enable use of SELECT
SHOW DATABASES Enable SHOW DATABASES to show all databases
SHOW VIEW Enable use of SHOW CREATE VIEW
SUPER Enable use of other adminstrative operations such as CHANGE MASTER TO, KILL, PURGE BINARY LOGS, SET GLOBAL, and mysqladmin debug command
TRIGGER Enable trigger operations
UPDATE Enable use of UPDATE
USAGE Synonym for "no privileges"

REVOKE

Zdroje a odkazy