Jump to content

SQL - Práce s uživatelem


Samnick

Recommended Posts

V článku SQL - Základní informace jsme si řekli základní informace o SQL a ukázali si možnost založení uživatele.

V tomto článku se probereme více možnostmi pro práci s uživatelem.

 

Příkaz CREATE v jazyce SQL slouží k vytváření nových objektů v databázi, jako jsou tabulky, pohledy, indexy, procedury, funkce, uživatelé atd.

Možnosti příkazu CREATE jsou specifické pro každý typ objektu, který se vytváří. Níže uvádím některé z možností příkazu CREATE pro nejčastěji používané typy objektů v databázi:

  • CREATE TABLE: vytvoří novou tabulku v databázi
  • CREATE VIEW: vytvoří nový pohled na tabulku nebo pohledy v databázi
  • CREATE INDEX: vytvoří nový index na tabulku nebo pohled v databázi
  • CREATE PROCEDURE: vytvoří novou uloženou proceduru v databázi
  • CREATE FUNCTION: vytvoří novou uloženou funkci v databázi
  • CREATE TRIGGER: vytvoří nový trigger (spouštěč) pro sledování událostí v databázi
  • CREATE USER: vytvoří nového uživatele databáze
  • CREATE DATABASE: vytvoří novou databázi

Každý z těchto příkazů má mnoho dalších možností a specifických syntaxí, které se používají pro vytváření konkrétních objektů v databázi.

 

Pro vytvoření uživatele tedy budeme potřebovat CREATE USER

CREATE USER user_name IDENTIFIED BY 'password';

Tento příkaz vytváří nového uživatele a přiděluje mu heslo pro přihlášení. user_name je jméno uživatele a password je heslo. Příkaz CREATE USER vytváří uživatele bez jakýchkoli oprávnění. Klíčové slovo IDENTIFIED BY slouží k přidělení hesla

Když budeme chtít takto vytvořeného uživatele přiřadit k nějaké databázi a nastavit mu oprávnění, budeme potřebovat příkaz GRANT

 

Příkaz GRANT slouží k udělení přístupových práv uživatelům v databázi. Mezi hlavní možnosti patří:

  • GRANT SELECT - umožňuje uživateli číst data v tabulkách
  • GRANT INSERT - umožňuje uživateli vkládat data do tabulek
  • GRANT UPDATE - umožňuje uživateli aktualizovat data v tabulkách
  • GRANT DELETE - umožňuje uživateli odstraňovat data z tabulek
  • GRANT CREATE - umožňuje uživateli vytvářet nové databáze, tabulky nebo indexy
  • GRANT DROP - umožňuje uživateli odstraňovat databáze, tabulky nebo indexy
  • GRANT ALTER - umožňuje uživateli měnit strukturu tabulek
  • GRANT ALL PRIVILEGES - umožňuje uživateli přístup ke všem funkcím databáze
  • GRANT EXECUTE - umožňuje uživateli spouštět uložené procedury nebo funkce

Při použití příkazu GRANT může být uvedeno i specifikum, jako je určení konkrétní tabulky nebo databáze, ke které se přístupová práva vztahují, a také specifikace konkrétního uživatele, kterým se práva přidělují

Například

GRANT SELECT, INSERT, UPDATE ON database_name.* TO user_name@'localhost' IDENTIFIED BY 'password';

Pozor, localhost v příkazu přiděluje oprávnění uživateli pro připojení pouze z lokálního serveru, ale pokud chcete umožnit připojení i z jiných míst, můžete změnit localhost za '%'. Použití localhost je vhodné když chcete mít jistotu v zabezpečení jako další faktor před manipulaci s daty cizí osobou. Nejčastěji se používá přímo pro aplikace která je spuštěna na stejném serveru jako je databáze.  

 

Tímto způsobem si můžete u uživatele nastavit oprávnění. Nyní ale potřebujeme změnu oprávnění.

Přidělení nového oprávnění použijeme opět příkaz GRANT. V opačném případě je potreba příkaz REVOKE

Mezi základní možnosti patří:

  • REVOKE ALL: Odebere všechna oprávnění uživateli pro daný objekt.
  • REVOKE [název oprávnění]: Odebere konkrétní oprávnění uživateli pro daný objekt.
  • REVOKE [název oprávnění] ON [název objektu] FROM [název uživatele]: Odebere konkrétní oprávnění uživateli pro daný objekt.

Například: 

REVOKE SELECT ON database_name.table_name FROM 'user_name'@'%';

 

A jako poslední práci s uživatelem změníme uživatele heslo. Pro změnu hesla existuje v SQL příkaz ALTER.

Příkaz ALTER v SQL slouží k úpravě již existujících objektů v databázi, jako jsou tabulky, pohledy, funkce, procedury, uživatelé atd. Možnosti příkazu ALTER se liší v závislosti na objektu, který chcete upravit. Zde je několik příkladů:

  • ALTER TABLE: slouží ke změně struktury tabulky, např. přidání/odebrání sloupců, změna datového typu sloupců nebo změna primárního klíče.
  • ALTER VIEW: slouží k úpravě definice pohledu.
  • ALTER FUNCTION nebo ALTER PROCEDURE: slouží ke změně těla funkce nebo procedury.
  • ALTER USER: slouží ke změně vlastností uživatele, jako je například změna hesla nebo limitu připojení.

Každý typ objektu má své vlastní specifické možnosti úpravy pomocí příkazu ALTER.

 

Pro změnu hesla použijeme ALTER USER 

Například:

ALTER USER 'user_name'@'%' IDENTIFIED BY 'user_new_password';

 

  • Like 4
  • Thanks 2
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...