Tietojen Hallintakieli
Data Control Language (DCL) on SQL:n osa-alue, jota käytetään tietojen käyttöoikeuksien hallintaan relaatiotietokannan hallintajärjestelmässä.
DCL-komennot liittyvät ensisijaisesti käyttöoikeuksien myöntämiseen tai poistamiseen tietokantaobjekteista, kuten tauluista, näkymistä ja skeemoista.
DCL-komennot
Kaksi pääasiallista DCL-komentoa ovat:
-
GRANT: tätä komentoa käytetään tiettyjen käyttöoikeuksien myöntämiseen käyttäjille tai rooleille; -
REVOKE: tätä komentoa käytetään aiemmin myönnettyjen käyttöoikeuksien poistamiseen käyttäjiltä tai rooleilta.
Käyttöoikeudet
Objektit
Toteutus
Käyttöoikeuksien myöntämiseksi tietylle käyttäjälle SQL:ssä voidaan käyttää seuraavaa komentoa:
GRANT privileges
ON object
TO {user | role | PUBLIC};
Tietokannassa on kolme roolityyppiä, joille voidaan myöntää käyttöoikeuksia:
- user: yksittäinen tietokannan käyttäjä;
- role: tietokantarooli, nimetty käyttöoikeusryhmä, joka voidaan liittää käyttäjiin (esim. admin, developer, analyst);
- PUBLIC: erityisavainsana, joka myöntää määritetyt käyttöoikeudet kaikille käyttäjille.
Rooli voidaan myöntää käyttäjälle seuraavalla komennolla:
GRANT role TO user;
Aiemmin myönnetyt käyttöoikeudet voidaan poistaa seuraavalla komennolla:
REVOKE privileges
ON object
FROM {user | role | PUBLIC};
Esimerkki
Tässä on esimerkkejä siitä, miten GRANT-komentoa käytetään eri käyttöoikeuksien myöntämiseen bankaccounts- ja userlogs-tauluihin eri rooleille ja käyttäjille.
-- Create role
CREATE ROLE bank_manager;
-- Grant privileges to bank_manager role
GRANT SELECT, INSERT, UPDATE, DELETE ON BankAccounts TO bank_manager;
GRANT SELECT, INSERT ON UserLogs TO bank_manager;
-- Create users
CREATE USER john WITH PASSWORD 'password123';
CREATE USER jane WITH PASSWORD 'password456';
-- Assign roles to users
GRANT bank_manager TO john;
GRANT bank_manager TO jane;
Nyt voimme peruuttaa joitakin myönnetyistä käyttöoikeuksista:
-- Revoke privileges from bank_manager role
REVOKE UPDATE, DELETE ON BankAccounts FROM bank_manager;
REVOKE INSERT ON UserLogs FROM bank_manager;
-- Revoke bank_manager role from john
REVOKE bank_manager FROM john;
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Can you explain the difference between GRANT and REVOKE with examples?
What are some best practices for managing privileges in a database?
How do roles and users differ when assigning privileges?
Awesome!
Completion rate improved to 4.55
Tietojen Hallintakieli
Pyyhkäise näyttääksesi valikon
Data Control Language (DCL) on SQL:n osa-alue, jota käytetään tietojen käyttöoikeuksien hallintaan relaatiotietokannan hallintajärjestelmässä.
DCL-komennot liittyvät ensisijaisesti käyttöoikeuksien myöntämiseen tai poistamiseen tietokantaobjekteista, kuten tauluista, näkymistä ja skeemoista.
DCL-komennot
Kaksi pääasiallista DCL-komentoa ovat:
-
GRANT: tätä komentoa käytetään tiettyjen käyttöoikeuksien myöntämiseen käyttäjille tai rooleille; -
REVOKE: tätä komentoa käytetään aiemmin myönnettyjen käyttöoikeuksien poistamiseen käyttäjiltä tai rooleilta.
Käyttöoikeudet
Objektit
Toteutus
Käyttöoikeuksien myöntämiseksi tietylle käyttäjälle SQL:ssä voidaan käyttää seuraavaa komentoa:
GRANT privileges
ON object
TO {user | role | PUBLIC};
Tietokannassa on kolme roolityyppiä, joille voidaan myöntää käyttöoikeuksia:
- user: yksittäinen tietokannan käyttäjä;
- role: tietokantarooli, nimetty käyttöoikeusryhmä, joka voidaan liittää käyttäjiin (esim. admin, developer, analyst);
- PUBLIC: erityisavainsana, joka myöntää määritetyt käyttöoikeudet kaikille käyttäjille.
Rooli voidaan myöntää käyttäjälle seuraavalla komennolla:
GRANT role TO user;
Aiemmin myönnetyt käyttöoikeudet voidaan poistaa seuraavalla komennolla:
REVOKE privileges
ON object
FROM {user | role | PUBLIC};
Esimerkki
Tässä on esimerkkejä siitä, miten GRANT-komentoa käytetään eri käyttöoikeuksien myöntämiseen bankaccounts- ja userlogs-tauluihin eri rooleille ja käyttäjille.
-- Create role
CREATE ROLE bank_manager;
-- Grant privileges to bank_manager role
GRANT SELECT, INSERT, UPDATE, DELETE ON BankAccounts TO bank_manager;
GRANT SELECT, INSERT ON UserLogs TO bank_manager;
-- Create users
CREATE USER john WITH PASSWORD 'password123';
CREATE USER jane WITH PASSWORD 'password456';
-- Assign roles to users
GRANT bank_manager TO john;
GRANT bank_manager TO jane;
Nyt voimme peruuttaa joitakin myönnetyistä käyttöoikeuksista:
-- Revoke privileges from bank_manager role
REVOKE UPDATE, DELETE ON BankAccounts FROM bank_manager;
REVOKE INSERT ON UserLogs FROM bank_manager;
-- Revoke bank_manager role from john
REVOKE bank_manager FROM john;
Kiitos palautteestasi!