Oikeuksien luovuttaminen ja poistaminen. Käyttöoikeuksien asettaminen myönnä komento Näkymien käyttö oikeuksien suodattamiseen

GRANT priv_type [(sarakkeen_luettelo)] [, priv_type [(sarake_luettelo)] ...] ON (tbl_name | * | *.* | db_name.*) TO user_name "salasana"] [, käyttäjän_nimi ...] ] ] ] ] REVOKE priv_type [(sarakkeen_luettelo)] [, priv_type [(sarake_luettelo)] ...] PÄÄLLÄ (tbl_name | * | *.* | db_name.*) FROM user_name [, user_name ...]

GRANT sisältyy MySQL-versioon 3.22.11 ja uudempiin. MySQL:n aiemmissa versioissa GRANT-käsky ei tee mitään.

GRANT- ja REVOKE-komentojen avulla järjestelmänvalvojat voivat luoda MySQL-käyttäjiä ja myöntää tai peruuttaa oikeuksia käyttäjille neljällä käyttöoikeustasolla:

Globaali taso Yleiset oikeudet koskevat kaikkia määritetyn palvelimen tietokantoja. Nämä oikeudet on tallennettu mysql.user-taulukkoon. Tietokannan taso Tietokannan käyttöoikeudet koskevat kaikkia määritetyn tietokannan taulukoita. Nämä oikeudet on tallennettu mysql.db- ja mysql.host-taulukoihin. Pöydän taso Taulukon oikeudet koskevat määritetyn taulukon kaikkia sarakkeita. Nämä oikeudet on tallennettu mysql.tables_priv-taulukkoon. Sarakkeen taso Sarakeoikeudet koskevat määritetyn taulukon yksittäisiä sarakkeita. Nämä oikeudet on tallennettu mysql.columns_priv-taulukkoon.

Jos oikeudet myönnetään käyttäjälle, jota ei ole olemassa, kyseinen käyttäjä luodaan. Esimerkkejä GRANT-komennosta on kohdassa 4.3.5 Uusien käyttäjien lisääminen MySQL:ään.

Taulukko näyttää luettelon mahdollisista arvoista priv_type-parametrille GRANT- ja REVOKE-käskyille:

KAIKKIAsettaa kaikki yksinkertaiset oikeudet paitsi WITH GRANT OPTION
MUUTTAASallii ALTER TABLE:n käytön
LUODAMahdollistaa CREATE TABLE -toiminnon käytön
LUO VÄLIAIKAISIA PÖÖYTTIÄMahdollistaa CREATE TEMPORARY TABLE -toiminnon käytön
POISTAASallii DELETE:n käytön
PUDOTAMahdollistaa DROP TABLE:n käytön.
SUORITTAAAntaa käyttäjän suorittaa tallennettuja toimenpiteitä (MySQL 5.0)
TIEDOSTOSallii SELECT... INTO OUTFILE- ja LOAD DATA INFILE -toimintojen käytön.
INDEKSIMahdollistaa CREATE INDEX -toiminnon käytön ja PUDOTA INDEKSI
LISÄÄSallii INSERT:n käytön
LUKITTU PÖÖDÄTSallii LOCK TABLES -toiminnon käytön pöydissä, joilla on SELECT-oikeus.
KÄSITELLÄ ASIAASallii SHOW FULL PROCESSLIST -toiminnon käytön
VIITTEETVarattu tulevaa käyttöä varten
LATAA UUDELLEENMahdollistaa FLUSHin käytön
TOISTUSASIAKASAntaa käyttäjälle oikeuden tiedustella isäntä- ja orjapalvelimien sijaintia.
REPLIKAATIOORJAVälttämätön orjapalvelimille replikoinnin aikana (tietojen lukemiseen pääpalvelimen binäärilokeista).
VALITSESallii SELECT:n käytön
NÄYTÄ TIETOKANTOTSHOW DATABASES Luetteloi kaikki tietokannat.
SAMMUTTAASallii mysqladmin shutdownin käytön
SUPERVoit muodostaa yhden yhteyden (kerran), vaikka max_connections saavutetaan, ja suorittaa CHANGE MASTER , KILL thread , mysqladmin debug , PURGE MASTER LOGS ja SET GLOBAL komennot
PÄIVITTÄÄSallii PÄIVITYKSEN käytön
KÄYTTÖSynonyymi sanalle "ilman oikeuksia".

USAGE-arvo voidaan määrittää, jos sinun on luotava käyttäjä ilman oikeuksia.

CREATE TEMPORARY TABLES, EXCUTE, LOCK TABLES, REPLICATION ..., SHOW DATABASES ja SUPER-oikeudet ovat uusia versiossa 4.0.2. Jotta voit hyödyntää näitä uusia oikeuksia versioon 4.0.2 päivityksen jälkeen, sinun on suoritettava mysql_fix_privilege_tables-komentosarja.

MySQL:n vanhemmissa versioissa PROCESS-käyttöoikeus antaa samat oikeudet kuin uusi SUPER-oikeus.

Jos haluat peruuttaa käyttäjän GRANT-komennolla myönnetyt oikeudet, käytä GRANT OPTION -kohdassa priv_type-arvoa:

Mysql> REVOKE GRANT OPTION ON ... FROM ...;

Ainoat priv_type-arvot, jotka voidaan määrittää taulukolle, ovat: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, GRANT, IDEX ja ALTER.

Ainoat priv_type-arvot, jotka voidaan määrittää sarakkeelle (käytettäessä sarakeluettelo-operaattoria), ovat SELECT , INSERT ja UPDATE .

Yleiset oikeudet voidaan asettaa käyttämällä ON *.*-syntaksia ja tietokantaoikeudet voidaan asettaa käyttämällä ON db_name.*-syntaksia. Jos määrität ON *, kun nykyinen tietokanta on auki, kyseiselle tietokannalle asetetaan oikeudet. ( Varoitus: jos määrität ON * milloin poissaolo nykyinen tietokanta on auki, tämä vaikuttaa maailmanlaajuisiin oikeuksiin!)

MySQL tarjoaa mahdollisuuden määrittää käyttäjänimen (user_name) lomakkeessa, jotta käyttäjien oikeudet voidaan määrittää tietyillä tietokoneilla. Jos sinun on määritettävä käyttäjämerkkijono, joka sisältää erikoismerkkejä (kuten "-"), tai isäntämerkkijono, joka sisältää erikoismerkkejä tai jokerimerkkejä (kuten "%"), voit liittää nimen etätietokone tai käyttäjä lainausmerkeissä (esimerkiksi "testikäyttäjä"@"testi-isäntänimi").

Voit myös sisällyttää jokerimerkkejä etätietokoneen nimeen. Esimerkiksi "%.loc.gov" viittaa kaikkien loc.gov-toimialueen etätietokoneiden käyttäjään ja "144.155.166.%" viittaa kaikkien luokan C aliverkon 144.155.166 etätietokoneiden käyttäjään.

Yksinkertainen lomakkeen käyttäjä on synonyymi sanalle "%" .

MySQL ei tue yleismerkkejä käyttäjätunnuksissa. Anonyymit käyttäjät määritellään lisäämällä User=""-tietueet mysql.user-taulukkoon tai luomalla käyttäjä tyhjällä nimellä GRANT-komennolla.

Huomautus: Jos anonyymit käyttäjät voivat muodostaa yhteyden MySQL-palvelimeen, sinun on myös myönnettävä oikeudet kaikille paikallisille käyttäjille, koska muuten, kun käyttäjä yrittää kirjautua MySQL:ään paikalliselta tietokoneelta, mysql.user-taulukko käyttää nimetöntä käyttäjää. Kirjaudu sisään!

Voit tarkistaa, tapahtuuko tämä tietokoneessasi, suorittamalla seuraava kysely:

Mysql> SELECT Host,User FROM mysql.user WHERE User="";

Tällä hetkellä GRANT-komento tukee etätietokoneiden nimiä, taulukoita, tietokantoja ja sarakkeita, joissa on enintään 60 merkkiä. Käyttäjätunnuksessa saa olla enintään 16 merkkiä.

Taulukon tai sarakkeen oikeudet muodostetaan käyttämällä loogista TAI-operaattoria kunkin neljän tason oikeuksista. Jos esimerkiksi mysql.user-taulukko osoittaa, että käyttäjällä on yleinen SELECT-oikeus, tätä oikeutta ei peruuteta tietokanta-, taulukko- tai saraketasolla.

Sarakkeen oikeudet voidaan laskea seuraavasti:

Yleiset oikeudet TAI (tietokantaoikeudet JA etätietokoneen oikeudet) TAI taulukon oikeudet TAI sarakeoikeudet

Useimmissa tapauksissa käyttäjäoikeudet määritellään vain yhdellä käyttöoikeustasolla, joten tämä toimenpide ei yleensä ole niin monimutkainen kuin edellä on kuvattu. yksityiskohtainen tieto Toimintojen järjestys käyttöoikeuksien tarkistamiseksi on esitetty kohdassa 4.2 Yleiset tietoturvaongelmat ja MySQL-käyttöoikeusjärjestelmä.

Jos käyttöoikeudet myönnetään käyttäjä/etä-yhdistelmälle, joka ei ole mysql.user-taulukossa, merkintä lisätään mysql.user-taulukkoon ja pysyy taulukossa, kunnes se poistetaan DELETE-komennolla. Toisin sanoen GRANT-komento voi luoda käyttäjätietueita taulukkoon, mutta REVOKE-komento ei voi poistaa niitä. Tämä on tehtävä DELETE-komennolla.

Jos sinulla on tietokantaoikeudet, mysql.db-taulukkoon luodaan tarvittaessa merkintä. Tämä merkintä poistetaan, kun kaikki tämän tietokannan oikeudet on poistettu REVOKE-komennolla.

Jos käyttäjällä ei ole oikeuksia taulukkoon, taulukkoa ei näytetä, kun käyttäjä pyytää taulukkoluetteloa (esimerkiksi käyttämällä SHOW TABLES -käskyä).

WITH GRANT OPTION -käsky antaa käyttäjälle mahdollisuuden myöntää muille käyttäjille mitä tahansa oikeuksia, jotka hänellä itsellään on tietyllä käyttöoikeustasolla. GRANT-oikeuksia myönnettäessä on oltava varovainen, sillä kaksi eri oikeuksia omaavaa käyttäjää voivat yhdistää oikeuksiaan!

Vaihtoehdot MAX_QUERIES_PER_HOUR #, MAX_UPDATES_PER_HOUR # ja MAX_CONNECTIONS_PER_HOUR # ovat uusia MySQL-versiossa 4.0.2. Nämä asetukset rajoittavat pyyntöjen, päivitysten ja kirjautumisten määrää, jotka käyttäjä voi tehdä tunnin aikana. Jos arvo on 0 (oletus), tämä tarkoittaa, että tälle käyttäjälle ei ole rajoituksia. Katso kohta.

Et voi antaa toiselle käyttäjälle etuoikeuksia, joita sinulla ei ole. GRANT-oikeus antaa sinun myöntää vain ne oikeudet, jotka sinulla on.

Huomaa, että jos käyttäjälle on määritetty GRANT-oikeus tietyllä käyttöoikeustasolla, kaikki oikeudet, jotka kyseisellä käyttäjällä on jo (tai myönnetään tulevaisuudessa!) tällä tasolla, voidaan myös määrittää kyseiselle käyttäjälle. Oletetaan, että käyttäjälle on myönnetty INSERT-oikeus tietokantaan. Jos myönnät sitten tietokannassa SELECT-oikeuden ja määrität WITH GRANT OPTION, käyttäjä voi myöntää SELECT-oikeuden lisäksi myös INSERT-oikeuden. Jos myönnät sitten käyttäjälle PÄIVITYS-oikeudet tietokannassa, käyttäjä voi antaa INSERT, SELECT ja UPDATE.

ALTER-oikeuksia ei pitäisi antaa tavallisille käyttäjille. Tämä antaa käyttäjälle mahdollisuuden murtaa etuoikeusjärjestelmä nimeämällä taulukoita uudelleen!

Huomaa, että jos taulukko- tai sarakeoikeuksia käytetään edes yhdelle käyttäjälle, palvelin tarkistaa kaikkien käyttäjien taulukko- ja sarakeoikeudet ja tämä hidastaa MySQL:ää jonkin verran.

Kun mysqld käynnistyy, kaikki oikeudet luetaan muistiin. Tietokanta-, taulukko- ja sarakeoikeudet tulevat voimaan välittömästi, kun taas käyttäjätason oikeudet tulevat voimaan seuraavan kerran, kun käyttäjä muodostaa yhteyden. Palvelin käsittelee välittömästi muutokset käyttöoikeuksien määritystaulukoihin, jotka on tehty GRANT- ja REVOKE-komennoilla. Jos muokkaat käyttöoikeuksien määritystaulukoita manuaalisesti (käyttäen INSERT , UPDATE jne.), sinun on suoritettava FLUSH PRIVILEGES- tai mysqladmin flush-privilege -käsky, joka ohjaa palvelinta lataamaan käyttöoikeustaulukot uudelleen. Katso kohta 4.3.3 Kun käyttöoikeusmuutokset tulevat voimaan.

Merkittävimmät erot GRANT-komennon ANSI SQL- ja MySQL-versioiden välillä ovat seuraavat:

  • MySQL:ssä oikeudet annetaan käyttäjätunnuksen + etätietokoneen yhdistelmälle, ei vain käyttäjätunnukselle.
  • ANSI SQL:llä ei ole globaaleja tai tietokantatason oikeuksia, eikä ANSI SQL tue kaikkia MySQL-käyttöoikeustyyppejä. MySQL ei toisaalta tue ANSI SQL TRIGGER-, EXECUTE- tai UNDER-oikeuksia.
  • ANSI SQL:n käyttöoikeusrakenne on hierarkkinen. Jos poistat käyttäjän, kaikki tälle käyttäjälle annetut oikeudet peruutetaan. MySQL:ssä annettuja oikeuksia ei peruuteta automaattisesti, vaan ne on poistettava itse tarvittaessa.
  • MySQL:ssä käyttäjä voi INSERT taulukon, jos hänellä on INSERT-oikeudet vain muutamaan sarakkeeseen kyseisessä taulukossa. Sarakkeet, joilla ei ole INSERT-oikeutta, asetetaan oletusarvoihinsa. ANSI SQL vaatii INSERT-oikeuden kaikissa sarakkeissa.
  • Kun pudotat taulukon ANSI SQL:ssä, kaikki kyseisen taulukon oikeudet peruutetaan. Jos peruutat ANSI SQL:n käyttöoikeuden, myös kaikki tämän oikeuden perusteella määritetyt oikeudet peruutetaan. MySQL:ssä oikeudet voidaan poistaa vain REVOKE-komennolla tai muuttamalla MySQL-käyttöoikeustaulukoita.

Katso REQUIRE-käytön kuvaus kohdasta 4.3.9 Suojattujen yhteyksien käyttäminen.

Käyttäjien kommentit

Lähettäjä Frank Wortner[Poista] [Muokkaa]

Minulla ei ollut ongelmia ld: n kanssa. DEC (Compaq) saattaa
on korjannut ld:n korjauspakkauksessa. Saattaisit haluta
asenna uusin korjauspaketti Digital Unix -laitteellesi
(Tru64 Unix) ennen MySQL:n rakentamista. Patch sarjat
ovat saatavilla osoitteessa
href=http://ftp.support.compaq.com/public/unix/ >
http://ftp.support.compaq.com/public/unix/

Lähettäjä lauantaina 16. helmikuuta 2002, klo 22.21[Poista] [Muokkaa]

Lähdeasennuksissa nämä ohjeet viittaavat hakemistorakenteeseen olettaen, että "usr/local" on käytetty (oletus) configure-apuohjelman kanssa. Mutta edellisen sivun ohjeet (kokoamista/asennusta varten) suosittelevat käyttämään:

./configure --prefix=/usr/local/mysql

Johdonmukaisuuden vuoksi (ja tämä aiheuttaa minulle ongelmia Perlin kanssa, joten se ei ole puhtaasti semanttinen), tämän sivun ohjeiden pitäisi olettaa, että /usr/local/mysql on määritetty asennushakemistoksi, jossa on configure.

Lähettäjä Linda Wright lauantaina 16. helmikuuta 2002, klo 22.21[Poista] [Muokkaa]

Tämä on luultavasti tärkein ja vähiten
arvostettuja osia kaikista mySQL:stä
dokumentaatio ensimmäistä kertaa mySQL-käyttäjille. IMHO,
tämän sivun lukeminen yhdessä
http://www.mysql.com/doc/P/r/Privileges.html on a
on suunniteltu kenenkään turvallisia tietokantajärjestelmiä
todellista hienostuneisuutta.

Lähettäjä Christopher Raymond lauantaina 16. helmikuuta 2002, klo 22.21[Poista] [Muokkaa]

Yritän asentaa MySQL:n OS X Public Beta -versioon. Kun suoritan mysql_install_db-komentosarjan, saan virheilmoituksen:

Dyld: ./bin/mysqld ei voi avata kirjastoa: /usr/lib/libpthread.A.dylib (Ei sellaista tiedostoa tai hakemistoa, errno = 2)
Apurahataulukoiden asennus epäonnistui!

Oletan, että skripti etsii hakemistoa, jota ei ole olemassa, koska Applella on hieman erilainen hakemistojen nimeämisrakenne, Ehkä tämä skripti täytyy muokata OS X -jakelua varten.

Voiko kukaan auttaa?

Lähettäjä Mark Zieg lauantaina 16. helmikuuta 2002, klo 22.21[Poista] [Muokkaa]

Olisi mukavaa, jos olisi mahdollisuus kirjata yhteyksiä, mutta ei kyselyitä.

Lähettäjä Bennett Haselton lauantaina 16. helmikuuta 2002, klo 22.21[Poista] [Muokkaa]

Jos olet kirjautunut sisään mysql-root-käyttäjänä ilman nykyistä tietokantaa ja yrität
myönnä kaikki oikeudet käyttäjälle komennolla:

MYÖNTÄ KAIKKI OIKEUDET * Bhaseltolle

Tällöin UUDELLEENLATAA, SAMMUTA, KÄSITTELY, TIEDOSTO ja GRANT eivät myönnetä, kuten voi olla
tarkistetaan tarkistamalla "mysql"-tietokannan "user"-taulukko. (Tämä on oletettavasti suunniteltu,
koska nämä oikeudet voivat tehdä käyttäjästä "liian voimakkaan".)

Lähettäjä DC Hill lauantaina 16. helmikuuta 2002, klo 22.21[Poista] [Muokkaa]

HUOMAUTUS: Jos olet myöntänyt käyttäjälle tietyn tietokannan oikeudet tai millä tahansa sitä alemmalla tasolla, kutsu "REVOKE ALL ON *.* FROM ;" EI peruuta oikeuksia näiltä tasoilta. *.* yllä olevassa lauseessa tarkoittaa "globaalia", ei "kaikkia (yksittäisiä) taulukoita kaikissa (yksittäisissä) tietokannassa. Tämä lauseke peruuttaa VAIN yleiset oikeudet, jotka on tallennettu mysql.user-taulukkoon. Sinun TÄYTYY peruuttaa tarkemmat oikeudet samalla tavalla kuin ne myönnettiin, jos haluat, että ne poistetaan etuoikeustaulukoista. (eli - GRANT ALL ON foo.* TO ; => REVOKE ALL ON foo.* FROM ;) Toivottavasti tämä säästää joitakin sinulle vähän aikaa ja turhautumista.

Lähettäjä Cris Perdue lauantaina 16. helmikuuta 2002, klo 22.21[Poista] [Muokkaa]

"Jos sinulla on prosessin etuoikeus, voit nähdä
kaikki langat.
Muuten näet vain omat ketjusi."

Lähettäjä FreeBSD Forums lauantaina 16. helmikuuta 2002, klo 22:21[Poista] [Muokkaa]

Voit käyttää phpMyAdmin-verkkopohjaista työkalua tehdäksesi paljon
mySQL-järjestelmänvalvojan toiminnoista. href="http://www.freebsdforums.org"
>FreeBSD-foorumit

Lähettäjä maanantaina 25. helmikuuta 2002, kello 6.03[Poista] [Muokkaa]

Vahvistettu MySQL 3.23.36:ssa Red Hat Linux 7.1:ssä:
Huomaa, että jos kirjoitat
käytä a_c;
myönnä valitse * ;
sinulle annetaan pääsy mihin tahansa
tietokanta, joka vastaa sanaa "a_c", jossa alaviiva on a
jokerimerkki. (Harvoin ongelma, luulisin).
Korjaa kanssa
päivitä mysql.db set db="a\_c" missä db="a_c";

Lähettäjä jan behrens tiistaina 9. heinäkuuta 2002, 01:31[Poista] [Muokkaa]

edellä mainittu DAN ELINin bugi x.x.41:ssä on
ilmeisesti edelleen voimassa x.x.51:ssä, en voi kirjautua sisään a
tietokanta sen jälkeen, kun on myönnetty oikeudet ja annettu a
salasana uudelle käyttäjälle (kyllä, huuhdoin
oikeudet).............vain pääkäyttäjän oikeudet ovat mahdollisia

Lähettäjä Dan Egli torstaina 4. huhtikuuta 2002, klo 20.33[Poista] [Muokkaa]

Grantin versiossa 3.23.41 näyttää olevan virhe.
Vain pääkäyttäjä voi käyttää mysql-tietokantaa, jopa
sen jälkeen, kun olet käyttänyt Grantia privs-oikeuksien myöntämiseen mihin tahansa
tietokanta/taulukko/sarake/ect.. saat aina
lupa evätty, riippumatta.

Lähettäjä Lars Aronsson lauantaina 8. kesäkuuta 2002, klo 11.16["%". Kun yritän poistaa ne, minulle kerrotaan tietylle tietokannalle, mutta ei globaaleja oikeuksia
LUO TEMPORARY TABLE -oikeus kyseiseen tietokantaan
on evätty.

Sinun on annettava globaali CREATE __ja__ globaali
LUO VÄLIAIKAISIA TAULUKKOJA käyttäjälle. IOW:
MYÖNTÄ LUOMINEN, LUO VÄLIAIKAISTA PÖYTÄKSIÄ *.* TO
;

Sanomattakin on selvää, että tämä vaikuttaa turvallisuuteen suuresti.

Lähettäjä sunnuntaina 25. elokuuta 2002, 9:17[Poista] [Muokkaa]

Väliaikaiset tiedostot ovat hyvä idea, mutta jopa
Luo ja luo väliaikaisia ​​tiedostooikeuksia
käyttäjän (globaalit oikeudet) tiedostoa se ei vieläkään toimi.
Tämä näyttää olevan huonosti suunniteltu.

Lähettäjä Brad Bulger maanantaina 2. syyskuuta 2002, 04:09[Poista] [Muokkaa]

On huomattava, että vain APUVAIHTOEHDOLLA
antaa käyttäjän siirtää oikeuksia käyttäjille, jotka
on jo olemassa. Automaaginen käyttäjän luominen
levyjä ei soveltaa - saat virheilmoituksen
jonka käyttäjä, jolla on GRANT OPTION -oikeus, tekee
heillä ei ole pääsyä "mysql"-tietokantaan. Tämä on
luultavasti hyvä asia, mutta se on dokumentoitava.

Lähettäjä Michael Babcock perjantaina 8. marraskuuta 2002, kello 13.00[Poista] [Muokkaa]

SHOW MASTER STATUS vaatii PROCESS-oikeudet.
Muut tällaiset parittomat yhdistelmät tulee dokumentoida.

Lähettäjä Dee Kintaudi torstaina 21. marraskuuta 2002, kello 12.42[Poista] [Muokkaa]

Okei, minulla on kysymys ja ongelma Mysql:n ja
salasanat :). Yritin käyttää useita vaihtoehtoja
ja useimmat eivät ole toimineet. Kuitenkin yksi
ratkaisu toimi ja testasin sitä kahdesti ja se
oli kiinteä. Tietenkin kadotin pienen paperin I
kirjoitti sen ulos, enkä näytä löytävän tätä
ratkaisu minne tahansa, ikään kuin sitä ei olisi olemassa tai ehkä minä
kuvitteli sen. Ratkaisu, joka toimi minulle,
Ennen kuin kadotin pienen paperilapun, kirjoitin sen muistiin
menee jotenkin näin..... Laittaa sisään käyttäjän root
Salasana "minun salasanani" ja sitten jotain
"Y", "Y", "Y" (noin tusina tai 15 kertaa tai niin)
En kuitenkaan löydä tätä ratkaisua mistään
joku auttaa minua täällä?

Minusta olisi niin hienoa, jos he laittaisivat tämän
koko dokumentaatiossaan sen sijaan, että yrittäisit
Piilota se. Uskon, että tämä ratkaisee monia ongelmia. Vain
laita salasana = "Y", "Y", "Y", kuten he häpeävät sitä
tai jotain.

Lähettäjä AJIT DIXIT maanantaina 25. marraskuuta 2002, kello 6.56[Poista] [Muokkaa]

Kun työskentelen usean pöydän päivityksessä root-käyttäjän kanssa
se toimii hyvin

Kun työskentelen ei-root-käyttäjän kanssa, saan virheilmoituksen

Sql: päivitä kauppiaat, alueet asetettu a_nm = aname
missä acd = alue

Tässä luvussa opit työskentelemään oikeuksien kanssa. Kuten luvussa 2 kerrottiin, SQL:ää käytetään tyypillisesti ympäristöissä, jotka vaativat käyttäjän tunnistamista ja järjestelmien eri käyttäjien erottamista toisistaan. Yleensä tietokannan ylläpitäjät luovat itse käyttäjiä ja antavat heille oikeuksia. Toisaalta käyttäjillä, jotka luovat taulukoita itse, on oikeus hallita näitä taulukoita. Oikeudet määrittävät, voiko määritetty käyttäjä suorittaa tietyn komennon. On olemassa useita erityyppisiä oikeuksia, jotka vastaavat useita eri toimintotyyppejä. Oikeudet myönnetään ja peruutetaan käyttämällä kahta SQL-komentoa: - GRANT ja REVOKE. Tämä luku näyttää kuinka näitä komentoja käytetään.

KÄYTTÄJÄT

Jokaisella käyttäjällä SQL-ympäristössä on erityinen tunnistenimi tai -numero. Terminologia on erilainen kaikkialla, mutta olemme valinneet (ANSI:n jälkeen) viittaavan siihen tai numeroon pääsytunnuksena (ID). Tietokantaan lähetetty komento liittyy tiettyyn käyttäjään; tai muuten erityinen pääsytunnus. Koska se liittyy SQL-tietokantaan, käyttöoikeustunnus on käyttäjänimi, ja SQL voi käyttää erityistä avainsanaa KÄYTTÄJÄ, joka viittaa nykyiseen komentoon liittyvään Access ID:hen. Komento tulkitaan ja sallitaan (tai evätään) komennon antavan käyttäjän pääsytunnukseen liittyvien tietojen perusteella.

REKISTERÖINTI

Useita käyttäjiä käyttävissä järjestelmissä on jonkinlainen kirjautumisprosessi, joka käyttäjän on suoritettava päästäkseen tietokonejärjestelmään. Tämä menettely määrittää, mikä pääsytunnus liitetään nykyiseen käyttäjään. Tyypillisesti jokaisella tietokantaa käyttävällä henkilöllä on oltava oma pääsytunnus ja rekisteröityessään hänestä tulee voimassa oleva käyttäjä. Usein käyttäjät, joilla on useita tehtäviä, voidaan kuitenkin rekisteröidä eri käyttötunnuksilla, tai päinvastoin, yhtä pääsytunnusta voi käyttää useampi käyttäjä. SQL:n näkökulmasta näiden kahden tapauksen välillä ei ole eroa; se käsittelee käyttäjää yksinkertaisesti hänen pääsytunnuksensa. SQL-tietokanta voi käyttää omaa kirjautumisprosessiaan tai se voi sallia toisen ohjelman, kuten käyttöjärjestelmä(pääohjelma, joka toimii tietokoneessasi), käsittele rekisteröintitiedosto ja hanki pääsytunnus tästä ohjelmasta. Tavalla tai toisella SQL:llä on pääsytunnus, joka liitetään toimintoihisi, ja KÄYTTÄJÄ-avainsana on sinulle merkityksellinen.

ETUOIKEOJEN TARJOAMINEN

Jokaisella SQL-tietokannan käyttäjällä on joukko oikeuksia. Tämä on mitä käyttäjä saa tehdä (ehkä se on lokitiedosto, jota voidaan pitää vähimmäisoikeuksina). Nämä oikeudet voivat muuttua ajan myötä - uusia lisätään, vanhoja poistetaan. Jotkut näistä oikeuksista on määritetty ANSI SQL:ssä, mutta tarvitaan myös lisäoikeuksia. ANSI:n määrittelemät SQL-oikeudet eivät riitä useimmissa tosielämän tilanteissa. Toisaalta tarvittavien oikeuksien tyypit voivat vaihdella käyttämäsi järjestelmätyypin mukaan - jolle ANSI ei anna suosituksia. Oikeudet, jotka eivät ole osa SQL-standardia, voivat käyttää samanlaista syntaksia, jotka eivät ole täysin standardin mukaisia.

STANDARDIETUT

ANSI:n määrittämät SQL-oikeudet ovat objektien oikeuksia. Tämä tarkoittaa, että käyttäjällä on oikeus suorittaa tietty komento vain tietylle tietokannan objektille. On selvää, että oikeuksien on erotettava nämä objektit, mutta yksinomaan objektin oikeuksiin perustuva käyttöoikeusjärjestelmä ei voi käsitellä kaikkea, mitä SQL tarvitsee, kuten tulemme näkemään myöhemmin tässä luvussa. Objektin oikeudet liittyvät sekä käyttäjiin että taulukoihin. Tämä tarkoittaa, että käyttöoikeus annetaan tietylle käyttäjälle määritetyssä taulukossa tai taustalla olevassa taulukossa tai näkymässä. Muista, että taulukon (minkä tahansa) luonut käyttäjä on tämän taulukon omistaja.

Tämä tarkoittaa, että käyttäjällä on kaikki tämän taulukon oikeudet ja että hän voi siirtää oikeuksia muille tämän taulukon käyttäjille. Käyttäjälle määritettävissä olevat oikeudet:

SELECT Käyttäjä, jolla on tämä käyttöoikeus, voi suorittaa kyselyitä taulukossa.

INSERT Käyttäjä, jolla on tämä käyttöoikeus, voi antaa INSERT-komennon taulukkoon.

UPDATE Käyttäjä, jolla on tämä käyttöoikeus, voi antaa UPDATE-komennon taulukkoon. Voit rajoittaa tämän oikeuden tiettyihin taulukon sarakkeisiin.

DELETE Käyttäjä, jolla on tämä käyttöoikeus, voi antaa DELETE-komennon taulukkoon.

VIITTEET Käyttäjä, jolla on tämä käyttöoikeus, voi määrittää vierasavaimen, joka käyttää yhtä tai useampaa tämän taulukon saraketta pääavaimena. Voit rajoittaa tämän oikeuden tiettyihin sarakkeisiin. (Katso luvusta 19 lisätietoja viiteavaimesta ja pääavaimesta.)

Lisäksi kohtaat ei-standardin kohteen oikeuksia, kuten INDEX, joka antaa oikeuden luoda indeksin taulukkoon, SYNONYM, joka antaa oikeuden luoda synonyymi objektille, mikä selitetään luvussa 23, ja ALTER, joka antaa oikeuden suorittaa ALTER TABLE -komennon taulukossa. SQL-moottori määrittää nämä oikeudet käyttäjille GRANT-komennolla.

GRANT TIIMI

Oletetaan, että käyttäjällä Diane on Asiakkaat-taulukko ja hän haluaa sallia käyttäjän Adrianin tehdä kyselyitä siitä. Dianen tulee sitten kirjoittaa seuraava komento:

MYÖNTÄ MYÖJÄT Dianeen;

Nyt Adrian voi suorittaa kyselyitä Asiakkaat-taulukkoon. Ilman muita oikeuksia hän voi valita vain arvoja; mutta ei voi suorittaa mitään toimintoa, joka vaikuttaisi Asiakkaat-taulukon arvoihin (mukaan lukien Asiakkaat-taulukon käyttäminen vieraan avaimen päätaulukona, mikä rajoittaa Asiakkaat-taulukon arvoon tehtäviä muutoksia).

Kun SQL vastaanottaa GRANT-komennon, se tarkistaa komennon antavan käyttäjän oikeudet määrittääkseen, onko GRANT-komento kelvollinen. Adrian ei voi antaa tätä käskyä yksin. Se ei myöskään voi myöntää SELECT-oikeuksia toiselle käyttäjälle: taulukko kuuluu edelleen Dianeen (näytämme myöhemmin, kuinka Diane voi myöntää Adrian SELECT -oikeuden muille käyttäjille).

Syntaksi on sama kuin muiden oikeuksien myöntämisessä. Jos Adrian on Sellers-taulukon omistaja, hän voi antaa Dianen syöttää siihen rivejä käyttämällä seuraavaa lauseketta

MYÖNTÄ MYÖJÄT Dianeen; Dianeella on nyt oikeus asettaa uusi myyjä pöytään.

ETUOIKEUSRYHMÄT, KÄYTTÄJÄRYHMÄT

Sinun ei pitäisi rajoittua myöntämään yksittäiselle käyttäjälle yhden käyttöoikeuden GRANT-komennolla. Pilkuilla erotetut luettelot käyttöoikeuksista tai käyttäjistä ovat täysin hyväksyttäviä. Stephen voi tarjota Adrianille tilaustaulukossa sekä SELECT- että INSERT-valinnan

GRANT SELECT, INSERT ON tilaukset Adrianille; tai sekä Adrianille että Dianelle GRANT SELECT, INSERT ON Orders TO Adrian, Diane;

Kun oikeudet ja käyttäjät luetellaan tällä tavalla, koko oikeuksien luettelo myönnetään kaikille määritetyille käyttäjille. Tiukassa ANSI-tulkinnassa et voi myöntää oikeuksia useille taulukoille kerralla yhdellä komennolla, mutta jotkin toteutukset voivat lieventää tätä rajoitusta antamalla sinun määrittää useita taulukoita pilkuilla erotettuina, jotta koko luettelo oikeuksista voidaan myöntää kaikille. määritellyt taulukot..

TIETTYJEN SARAKETEN OIKEUDET RAJOITTAVAT

Kaikki objektin oikeudet käyttävät samaa syntaksia lukuun ottamatta UPDATE- ja REGERNCES-komentoja, jotka eivät vaadi sarakkeiden nimiä. UPDATE-oikeus voidaan myöntää kuten muutkin oikeudet:

MYÖNTÄ PÄIVITYS Dianeelle;

Tämän komennon avulla Diane voi muuttaa arvoja missä tahansa tai kaikissa Toimittajat-taulukon sarakkeissa. Jos Adrian kuitenkin haluaa estää Dianea muuttamasta esimerkiksi palkkioita, hän voi osallistua

MYÖNTÄ PÄIVITYS (comm) Dianelle;

Toisin sanoen sen on yksinkertaisesti määritettävä sarake, johon PÄIVITYS-oikeuksia tulee soveltaa, suluissa taulukon nimen jälkeen. Useiden taulukon sarakkeiden nimet voidaan määrittää missä tahansa järjestyksessä pilkuilla erotettuina:

MYÖNTÄ PÄIVITYS (kaupunki, tietoliikenne) Dianen myyjille;

VIITTEET noudattaa samaa sääntöä. Kun myönnät REFERENCES-käyttöoikeuden toiselle käyttäjälle, hän voi luoda vierasavaimia, jotka viittaavat taulukosi sarakkeisiin yläavaimina. Kuten PÄIVITYS, REFERENCES-käyttöoikeus voidaan määrittää luettelona yhdestä tai useammasta sarakkeesta, jolle tämä käyttöoikeus on rajoitettu. Diane voisi esimerkiksi myöntää Stephenille oikeuden käyttää Asiakastaulukkoa pääavaintaulukkona seuraavalla komennolla:

MYÖNNETTÄVÄT VIITTEET (cname, cnum) asiakkaista Stephenille; Tämä komento antaa Stephenille oikeuden käyttää cnum- ja cname-sarakkeita pääavaimina mille tahansa taulukoissaan oleville vieraille avaimille. Stephen voi hallita, miten tämä tehdään. Se voi määritellä (cname, cnum) tai meidän tapauksessamme (cnum, cname) kahdessa sarakkeessa olevaksi pääavaimeksi, joka on sovitettu vieraalla avaimella kahteen sarakkeeseen yhdessä omissa taulukoissaan. Tai se voi luoda erillisiä vieraita avaimia, jotka viittaavat sukupuoleen yksilöllisesti, mikä varmistaa, että Dianella on sille määritetty pääavain (katso luku 19).

Ilman rajoituksia vieraiden avainten numeroille, sen on perustuttava näihin pääavaimiin, ja eri vieraiden avainten pääavainten on sallittava mennä päällekkäin.

Kuten PÄIVITYS-oikeuden kohdalla, voit sulkea pois sarakeluettelon ja sallia siten kaikkien sarakkeiden käytön yläavaimina. Adrian voi antaa Dianelle oikeuden tehdä tämä seuraavalla komennolla:

MYÖNTÄVITTEIDEN MYÖNTÄMINEN Dianeelle;

Luonnollisesti etuoikeus on käytettävissä vain sarakkeissa, joissa on pääavainten edellyttämät rajoitukset.

KÄYTTÄMÄLLÄ KAIKKIA JA JULKISTA ARGUMENTTIA

SQL tukee kahta argumenttia GRANT-komennossa, joilla on erityinen merkitys: ALL PRIVILEGES tai yksinkertaisesti ALL ja PUBLIC. ALL-komentoa käytetään GRANT-komennon käyttöoikeuksien nimien sijasta kaikkien taulukon oikeuksien myöntämiseen. Diane voisi esimerkiksi antaa Stephenille kaikki oikeudet Asiakkaat-taulukossa seuraavalla komennolla:

MYÖNTÄVITTEIDEN MYÖNTÄMINEN Dianeelle;

(UPDATE- ja REFERENCES-oikeudet koskevat luonnollisesti kaikkia sarakkeita.) Tässä on toinen tapa sanoa sama asia:

MYÖNTÄ KAIKKI asiakkaat Stephenille;

JULKINEN on enemmänkin kaiken kattava argumenttityyppi kuin käyttäjäoikeus. Kun myönnät julkaisuoikeudet, kaikki käyttäjät saavat ne automaattisesti. Useimmiten tätä käytetään SELECT-oikeuksiin tietyissä taustalla olevissa taulukoissa tai näkymissä, jotka haluat asettaa kaikkien käyttäjien saataville. Jos haluat sallia kaikkien käyttäjien nähdä Tilaustaulukon, voit kirjoittaa esimerkiksi seuraavan:

MYÖNTÄ VALINTA TILAUKSESTA JULKISET;

Tietysti voit myöntää minkä tahansa tai kaikki etuoikeudet yhteiskunnalle, mutta tämä ei todennäköisesti ole suositeltavaa. Kaikki oikeudet paitsi SELECT sallivat käyttäjän muuttaa (tai REFERENCES-kohdassa rajoittaa) taulukon sisältöä. Kaikkien käyttäjien salliminen muuttaa taulukkojesi sisältöä aiheuttaa ongelmia.

Vaikka sinulla olisi pieni yritys ja kaikki nykyiset käyttäjäsi pystyvät suorittamaan muokkauskomentoja tietyssä taulukossa, olisi parempi myöntää oikeudet jokaiselle käyttäjälle erikseen kuin myöntää samat oikeudet kaikille. PUBLIC ei rajoitu sen siirtämiseen vain nykyisille käyttäjille. Minkä tahansa Uusi käyttäjä järjestelmääsi lisätyt saavat automaattisesti kaikki kaikille aiemmin annetut oikeudet, joten jos haluat rajoittaa taulukon pääsyä kaikille, nyt tai tulevaisuudessa, on parasta myöntää yksittäisille käyttäjille muut oikeudet kuin SELECT.

ETUOIKEUSTEN MYÖNTÄMINEN KÄYTTÖOHJELMAN KANSSA

Joskus taulukon luoja haluaa muiden käyttäjien saavan oikeudet hänen pöytäänsä. Tämä tehdään yleensä järjestelmissä, joissa yksi tai useampi henkilö luo useita (tai kaikki) perustaulukoita tietokantaan ja delegoi sitten vastuun niistä niille, jotka todella työskentelevät niiden kanssa. SQL antaa sinun tehdä tämän käyttämällä WITH GRANT OPTION -lausetta. Jos Diane halusi, että Adrian voi myöntää SELECT-oikeuden Asiakkaat-taulukossa muille käyttäjille, hän antaisi hänelle SELECT-oikeuden WITH GRANT OPTION -lausekkeen avulla:

MYÖNTÄ VALITSE asiakkaita Adrianille APUVAIHTOEHDOLLA; Adrian sai sitten oikeuden siirtää SELECT-oikeudet kolmansille osapuolille; se voi antaa komennon GRANT SELECT ON Diane.Customers TO Stephen; tai jopa GRANT SELECT ON Diane.Asiakkaat Stephenille GRANT OPTIONIN KANSSA; Käyttäjä, jolla on GRANT OPTION tietyssä taulukossa tietyssä oikeudessa, voi vuorostaan ​​myöntää tämän oikeuden samassa taulukossa, joko GRANT OPTION:n kanssa tai ilman, kenelle tahansa toiselle käyttäjälle. Tämä ei muuta itse taulukon omistajuutta; kuten ennenkin, taulukko kuuluu sen tekijälle. (Tästä syystä myönnettyjen käyttäjien on liitettävä omistajan käyttöoikeustunnus etuliitteenä viitattaessa näihin taulukoihin. Seuraavassa luvussa näytetään tämä menetelmä.) Käyttäjällä, joka käyttää GRANT OPTION -vaihtoehtoa kaikissa tietyn taulukon oikeuksissa, on täydet oikeudet kyseiseen taulukkoon.

ETUJEN PERUUTTAMINEN

Aivan kuten ANSI tarjoaa CREATE TABLE -komennon taulukon luomiseen sen sijaan, että DROP TABLE -komennolla päästään eroon siitä, GRANT-komennon avulla voit antaa käyttäjille oikeuksia ilman, että he voivat ottaa niitä takaisin. Oikeuksien poistamisen tarve johtuu REVOKE-komennosta, joka on itse asiassa tavallinen työkalu, jolla on melko selkeä syöttötapa. REVOKE-komennon syntaksi on samanlainen kuin GRANT, mutta sillä on päinvastainen merkitys. Voit poistaa Adrianin INSERT-oikeuden tilaustaulukosta syöttämällä

REVOKE INSERT ON tilaukset FROM Adrian;

Oikeus- ja käyttäjäluetteloiden käyttö on sallittu tässä, kuten GRANT:n kohdalla, joten voit antaa seuraavan komennon:

PERUUTA LISÄÄ, POISTA asiakkailta Adrianilta, Stepheniltä; Tässä on kuitenkin jonkin verran epäselvyyttä. Kenellä on oikeus peruuttaa oikeudet? Milloin käyttäjä, jolla on oikeus siirtää oikeuksia muille, menettää tämän oikeuden? Menettävätkö ne myös käyttäjät, joille hän myönsi nämä oikeudet? Koska tämä ei ole vakioominaisuus, näihin kysymyksiin ei ole olemassa arvovaltaisia ​​vastauksia, mutta yleisin lähestymistapa on tämä: * Oikeudet peruuttaa ne myöntänyt käyttäjä, ja peruuttaminen tapahtuu peräkkäin, eli se siirtyy automaattisesti kaikki käyttäjät, jotka ovat saaneet häneltä etuoikeuden.

NÄKYMÄN KÄYTTÄMINEN OIKEUSTEN SUODATTAMISEEN

Voit tarkentaa etuoikeustoimintoja käyttämällä näkymiä. Aina kun myönnät käyttäjälle perustaulukon käyttöoikeuden, se siirtyy automaattisesti kaikille riveille ja mahdollisia UPDATE- ja REFERENCES-poikkeuksia käytettäessä taulukon kaikkiin sarakkeisiin. Luomalla näkymän, joka viittaa taustalla olevaan taulukkoon ja siirtää sitten oikeudet näkymään taulukon sijaan, voit rajoittaa nämä oikeudet kaikkiin näkymään sisältyvän kyselyn lausekkeisiin. Tämä parantaa huomattavasti GRANT-komennon perusominaisuuksia.

KUKA VOI TEHDÄ LÄHETYSTEN?

Jotta voit luoda näkymän, sinulla on oltava SELECT-oikeus kaikissa taulukoissa, joihin viittaat näkymässä. Jos näkymää voidaan muokata, kaikki perustaulukossa olevat INSERT-, UPDATE- ja DELETE-oikeudet siirretään automaattisesti näkymään. Jos sinulla ei ole perustaulukoiden muokkausoikeuksia, et voi käyttää niitä luomissasi näkymissä, vaikka itse näkymät olisivat muokattavissa. Koska näkymissä ei käytetä vieraita avaimia, REFERENCES-oikeuksia ei koskaan käytetä näkymiä luotaessa. ANSI määrittelee kaikki nämä rajoitukset. Epätyypilliset järjestelmäoikeudet (käsitellään myöhemmin tässä luvussa) voidaan myös ottaa käyttöön. Seuraavissa osissa oletetaan, että keskustelemiemme näkymien luojilla on yksityiset tai asianmukaiset oikeudet kaikissa taustalla olevissa taulukoissa.

RAJOITTAVAT VALITSEMISOIKEUDET TIETTYISSÄ SARAKEESSA

Oletetaan, että haluat antaa käyttäjälle Clairelle mahdollisuuden nähdä vain Myynti-taulukon snum- ja sname-sarakkeet. Voit tehdä tämän laittamalla näiden sarakkeiden nimet näkymään

LUO NÄKYMÄ Clairesview AS SELECT snum, sname FROM Myyjät; ja myönnä Clairelle SELECT-oikeudet näkymän sijaan itse Myyjien taulukossa: GRANT SELECT Clairesviewissa Clairelle; Voit luoda oikeuksia erityisesti sarakkeille, kuten käyttämällä muita oikeuksia, mutta INSERT-komennolla tämä lisää oletusarvot, ja DELETE-komennolla sarakerajoituksella ei ole vaikutusta. REFERENCES- ja UPDATE-oikeudet voivat tietysti tehdä sarakkeista erityisiä turvautumatta näkymään.

TIETTYJEN KIELOJEN RAJOITTAVAT OIKEUDET Yleensä hyödyllisempi tapa suodattaa oikeuksia näkymillä on käyttää näkymää saadakseen oikeudet koskemaan vain tiettyjä rivejä. Voit tehdä tämän luonnollisesti käyttämällä predikaattia näkymässä, joka määrittää, mitkä rivit sisällytetään. Jos haluat antaa käyttäjälle Adrianille PÄIVITYS-oikeudet Asiakkaat-taulukossa kaikille Lontoossa sijaitseville asiakkaille, voit luoda seuraavanlaisen näkymän:

LUO NÄKYMÄ Londoncust AS SELECT * FROM Asiakkaat WHERE kaupunki = "Lontoo" TARKISTA VAIHTOEHDOLLA; Sinun on sitten myönnettävä tämän pöydän PÄIVITYS-oikeus Adrianille: MYÖNTÄ PÄIVITYS Londoncustissa Adrianille; Tämä on ero tiettyjen rivien etuoikeuden ja tiettyjen sarakkeiden PÄIVITYS-oikeuden välillä, joka koskee kaikkia Asiakkaat-taulukon sarakkeita, mutta ei rivejä, joissa rivejä, joiden kaupungin sukupuoliarvo on muu kuin Lontoo, ei oteta huomioon. . WITH CHECK OPTION -lauseke estää Adriania muuttamasta kaupungin sukupuoliarvoa mihinkään muuhun kuin Lontooseen. KÄYTÖN TARJOAMINEN VAIN OTETTUIHIN TIETOJIN Toinen mahdollisuus on tarjota käyttäjille pääsy jo haettuihin tietoihin taulukon todellisten arvojen sijaan. Kokoonpanofunktiot voivat olla erittäin käteviä tämän menetelmän käytössä. Voit luoda näkymän, joka näyttää tilausten lukumäärän, keskiarvon ja loppusumman kullekin tilauspäivälle: CREATE VIEW Päivämääräsummat AS SELECT odate, COUNT (*), SUM (amt), AVG (amt) FROM tilauksista GROUP BY odate; Annat nyt käyttäjälle Dianeen SELECT-oikeudet Päivämäärät-näkymässä: GRANT SELECT ON Datetotals TO Diane; ESITYSTEN KÄYTTÄMINEN VAIHTOEHTONA RAJOITTEILLE Yksi sarjan uusimmista sovelluksista, joka on kuvattu luvussa 18, on WITH CHECK OPTION -näkymien käyttö vaihtoehtona rajoituksille. Oletetaan, että halusit varmistaa, että kaikki toimittajat-taulukon kaupunkien sukupuoliarvot ovat jossakin niistä kaupungeista, joissa yritykselläsi on tällä hetkellä toimisto. Voit asettaa CHECK-rajoitteen suoraan kaupunkisarakkeeseen, mutta sen muuttaminen voi myöhemmin olla vaikeaa, jos yrityksesi avaa sinne esimerkiksi muita osastoja. Vaihtoehtoisesti voit luoda näkymän, joka sulkee pois virheelliset kaupunkiarvot: LUO NÄKYMÄ Curcities AS SELECT * FROM Salespeople WHERE city ("Lontoo", "Rooma", "San Jose", "Berliini") TARKISTUSVAIHTOEHDOLLA; Nyt sen sijaan, että myöntäisit käyttäjille muokkausoikeudet Kauppiaat-taulukossa, voit myöntää heille Curcities-näkymässä. Tämän lähestymistavan etuna on, että jos sinun on tehtävä muutos, voit poistaa kyseisen näkymän, luoda uuden ja myöntää oikeuksia käyttäjille uudessa näkymässä, mikä on helpompaa kuin rajoitusten muuttaminen. Haittapuolena on, että Sales-taulukon omistajan on myös käytettävä tätä näkymää, jos hän ei halua, että hänen omia komentojaan hylätään. Toisaalta tämä lähestymistapa antaa taulukon omistajalle ja kenelle tahansa muulle mahdollisuuden saada muokkausoikeudet itse taulukkoon näkymän sijaan tehdä poikkeuksia rajoituksiin.

Tämä on usein toivottavaa, mutta ei mahdollista, jos käytät perustaulukossa rajoituksia. Valitettavasti nämä poikkeukset eivät näy näkymässä. Jos valitset tämän lähestymistavan, haluat luoda toisen näkymän, joka sisältää vain poikkeuksia: LUO NÄKYMÄ Muut kaupungit AS SELECT * FROM Salespeople WHERE city NOT IN ("Lontoo", "Rooma", "San Jose", "Berliini") WITH TARKISTA VAIHTOEHTO; Sinun tulisi antaa käyttäjille vain SELECT-oikeus tässä näkymässä, jotta he näkevät poissuljetut rivit, mutta eivät voi laittaa virheellisiä kaupunkiarvoja alla olevaan taulukkoon. Itse asiassa käyttäjät voivat tehdä kyselyn molemmista näkymistä liitossa ja nähdä kaikki rivit kerralla.

MUUT ETUOIKEUDET

Tietenkin haluat tietää, kenellä on oikeus luoda taulukko ensin. Tämä etuoikeusalue ei ole ANSI, mutta sitä ei voida jättää huomiotta. Kaikki ANSI-standardioikeudet johdetaan tästä oikeudesta; taulukoiden tekijöiden oikeudet, jotka voivat siirtää objektien oikeuksia. Jos kaikki käyttäjäsi luovat perustaulukoita järjestelmään eri kokoja tämä johtaa niiden redundanssiin ja järjestelmän tehottomuuteen. Myös muut kysymykset herättävät huomiota:

Kenellä on oikeus muuttaa, poistaa tai rajoittaa taulukoita?

Pitäisikö perustaulukoiden luomisoikeuksien olla erilaisia ​​​​kuin näkymien luontioikeuksia?

Pitäisikö olla superkäyttäjä - käyttäjä, joka on vastuussa tietokannan ylläpidosta ja jolla on siksi suurin osa tai kaikki oikeudet, joita ei myönnetä erikseen?

Ennen kuin ANSI on mukana ja SQL:ää käytetään erilaisissa ympäristöissä, emme voi antaa lopullista vastausta näihin kysymyksiin. Ehdotamme tarkastelemaan tässä osaa yleisimmistä johtopäätöksistä.

Oikeuksia, joita ei ole määritelty erityisinä tietoobjekteina, kutsutaan järjestelmäoikeuksiksi tai tietokantaoikeuksiksi. Perustasolla nämä sisältävät todennäköisesti oikeuden luoda tietoobjekteja, jotka ovat todennäköisesti muita kuin perustaulukoita (jotka ovat yleensä luoneet muutama käyttäjä) ja näkymiä (jotka yleensä luovat suurin osa käyttäjistä). Näkymien luomiseen tarkoitettujen järjestelmäoikeuksien tulee olla ANSI:n näkymän luojilta vaatimien objektioikeuksien lisäksi, ei niiden sijasta (kuvattu aiemmin tässä luvussa). Lisäksi kaikenkokoisessa järjestelmässä on aina tietyn tyyppisiä pääkäyttäjiä - käyttäjiä, joilla on automaattisesti useimmat tai kaikki oikeudet - ja jotka voivat siirtää pääkäyttäjän asemansa jollekin toiselle etuoikeuden tai etuoikeusryhmän kautta. Tietokannan ylläpitäjä tai DBA on yleisimmin käytetty termi sellaiselle pääkäyttäjälle ja sen oikeuksille.

TYYPILLISET JÄRJESTELMÄN OIKEUDET

Yleisesti ottaen järjestelmän perusoikeuksia on kolme: - CONNECT, - RESOURCE ja - DBA (tietokannan järjestelmänvalvoja). Yksinkertaisemmin sanottuna CONNECTin voidaan sanoa koostuvan rekisteröimisoikeudesta ja oikeudesta luoda näkymiä ja synonyymejä (katso luku 23), jos objektin oikeudet ohitetaan. RESURSSI koostuu oikeudesta luoda perustaulukoita. DBA on pääkäyttäjän oikeudet, joka antaa käyttäjälle korkean vallan tietokannassa. Yhdellä tai useammalla käyttäjällä, jolla on tietokannan järjestelmänvalvojan toiminnot, voi olla tämä käyttöoikeus. Joissakin järjestelmissä on myös erityinen käyttäjä, jota joskus kutsutaan nimellä SYSADM tai SYS (System Database Administrator), jolla on korkein valtuutus. se on heille erityinen, eikä vain käyttäjä, jolla on erityiset DBA-oikeudet. Itse asiassa vain yksi henkilö voi rekisteröityä nimellä SYSADM, joka on heidän pääsytunnuksensa. Ero on melko hienovarainen ja toimii eri tavalla eri järjestelmissä. Tarkoituksissamme tarkoitamme erittäin etuoikeutettua käyttäjää, joka kehittää ja hallinnoi tietokantaa DBA-oikeuksilla ymmärtäen, että itse asiassa nämä oikeudet ovat samat oikeudet. GRANT-komentoa voidaan käyttää muokatussa muodossa sekä objektin että järjestelmän oikeuksilla. Aluksi oikeuksien siirto voidaan tehdä käyttämällä DBA:ta. DBA voisi esimerkiksi myöntää Rodriguezille taulukonluontioikeuden seuraavasti: GRANT RESOURCE TO Rodriguez;

LUO JA POISTA KÄYTTÄJÄT

Luonnollisesti herää kysymys: mistä Rodriguez-niminen käyttäjä tulee? Kuinka määrittää sen selvitystunnus? Useimmissa toteutuksissa DBA luo käyttäjän myöntämällä hänelle automaattisesti CONNECT-oikeudet. Tässä tapauksessa identified by -lause lisätään yleensä ilmaisemaan salasanaa. (Jos ei, käyttöjärjestelmän on määritettävä, voitko kirjautua tietokantaan annetulla käyttötunnuksella.) DBA voi esimerkiksi myöntää GRANT CONNECT TO Theloniukselle, TUNNISTAJA Redwagon; joka luo käyttäjän nimeltä Thelonius, antaa hänelle oikeuden rekisteröityä ja antaa hänelle salasanan Redwagon, kaikki yhdessä lauseessa. Koska Thelonious on jo todennettu käyttäjä, hän tai DBA voi käyttää samaa komentoa Redwagonin salasanan vaihtamiseen. Vaikka tämä on kätevää, tällä lähestymistavalla on silti rajoituksia. Tämä on mahdotonta saada käyttäjä, joka ei voinut rekisteröityä, ainakaan tilapäisesti. Jos haluat estää käyttäjää kirjautumasta sisään, sinun on käytettävä REVOKE-kohdassa CONNECT-oikeutta, joka "poistaa" kyseisen käyttäjän. Joissakin toteutuksissa voit luoda ja poistaa käyttäjiä heidän kirjautumisoikeuksistaan ​​riippumatta. Kun myönnät käyttäjälle CONNECT-oikeuden, luot kyseisen käyttäjän. Lisäksi, jotta voit tehdä tämän itse, sinulla on oltava DBA-oikeudet. Jos tämä käyttäjä aikoo luoda perustaulukoita (ei vain näkymiä), hänelle on myös myönnettävä RESOURCE-käyttöoikeus. Mutta tämä aiheuttaa heti toisen ongelman. Jos yrität poistaa CONNECT-oikeudet käyttäjältä, jolla on luomiaan taulukoita, komento hylätään, koska se jättäisi taulukon ilman omistajaa, mikä ei ole sallittua. Sinun on ensin pudotettava kaikki tämän käyttäjän luomat taulukot ennen kuin poistat hänen CONNECT-oikeutensa. Jos nämä taulukot eivät ole tyhjiä, sinun kannattaa todennäköisesti välittää niiden tiedot muille taulukoille INSERT-komennolla, joka käyttää kyselyä. Sinun ei tarvitse poistaa RESOURSE-oikeuksia erikseen; Käyttäjän poistamiseksi riittää, että poistat CONNECT. Vaikka yllä oleva on melko tavallinen lähestymistapa järjestelmän oikeuksiin, sillä on myös merkittäviä rajoituksia. Vaihtoehtoisia lähestymistapoja, jotka on määritelty tarkemmin ja jotka ohjaavat järjestelmän oikeuksia tarkemmin, on syntynyt.

Nämä johtopäätökset vievät meidät jonkin verran pidemmälle kuin tällä hetkellä määritelty SQL-standardi, ja joissakin toteutuksissa ne voivat ylittää SQL-standardin kokonaan. Nämä asiat eivät todennäköisesti koske sinua liikaa, ellet ole DBA tai käyttäjä korkeatasoinen. Tavallisten käyttäjien on yksinkertaisesti tunnettava järjestelmän oikeudet periaatteessa, ja heidän dokumentaatiostaan ​​tulee tutustua vain erikoisviestien yhteydessä.

YHTEENVETO

Oikeudet antavat sinulle mahdollisuuden nähdä SQL uudesta näkökulmasta, kun SQL suorittaa toimintoja erityiskäyttäjien kautta erityisessä tietokantajärjestelmässä. GRANT-komento itsessään on melko yksinkertainen: sen avulla myönnät tietyt objektin oikeudet yhdelle tai useammalle käyttäjälle. Jos myönnät käyttäjälle WITH GRANT OPTION -oikeuden, tämä käyttäjä voi puolestaan ​​myöntää sen muille. Ymmärrät nyt vihjeet oikeuksien käyttämisestä näkymissä – perustaulukoiden oikeuksien parantamiseksi tai vaihtoehtona rajoituksille – ja jotkin tämän lähestymistavan edut ja haitat. Järjestelmäoikeudet, jotka vaaditaan, mutta eivät kuulu SQL-standardin piiriin, on käsitelty yleisimmässä muodossaan, joten ne opit harjoittelemalla. Luvussa 23 jatketaan keskustelua SQL:n päätelmistä, kuten muutosten tallentamisesta tai palauttamisesta, omien nimien luomisesta muiden omistamille taulukoille ja ymmärtämisestä, mitä tapahtuu, kun eri käyttäjät yrittävät käyttää samaa objektia samanaikaisesti.

TYÖSKENTELY SQL:n KANSSA

1. Anna Janetille oikeus muuttaa asiakkaan arvosanaa.

2. Anna Stephanille oikeus myöntää muille käyttäjille oikeus tehdä kyselyitä Tilaukset-taulukossa.

3. Poista INSERT-oikeus Toimittajat-taulukosta Clairelta ja kaikilta käyttäjiltä, ​​joille se on myönnetty.

4. Anna Jerrylle oikeus lisätä tai muokata Asiakkaat-taulukkoa säilyttäen samalla kykynsä arvioida arvoja välillä 100–500.

5. Anna Janetin tehdä kyselyjä Asiakastaulukosta, mutta estä häntä vähentämästä arvioita samassa asiakastaulukossa.

SQL Server -alusta käyttää REVOKE-käskyä tapana peruuttaa tietylle käyttäjälle määritetyt käyttöoikeusasetukset. Tämä kohta on tärkeä, koska SQL Server tukee ylimääräistä DENY-käskyä, joka nimenomaisesti estää käyttäjän pääsyn tiettyyn resurssiin. SQL Serverissä REVOKE-käskyn avulla voidaan peruuttaa käyttäjälle GRANT-käskyn avulla määritetyt oikeudet. Jos haluat nimenomaisesti evätä käyttäjältä tietyt oikeudet, sinun tulee käyttää DENY-lausetta.

SQL Server -alusta ei tue ANSI HIERARCHY OPTION- ja ADMIN OPTION -lauseita. Vaikka ADMIN OPTION -lausetta ei tueta, REVOKE-komennon SQL Server -versiolla on kaksi järjestelmänvalvojan oikeutta (CREATE ja BACKUP). Ohjeiden syntaksi on seuraava.

REVOKE ([object_privilege] [, ...] | [system_privilege]) [(sarake [, ...])]]| (TO | LÄHETTÄJÄ) (vastaanottajan_nimi [, …] | rooli [, …] | JULKINEN | VIERAS) ]

APURAHAN VAIHTOEHTO

Käyttäjältä riistetään oikeus antaa tiettyjä oikeuksia muille käyttäjille.

esineen etuoikeus

Erilaisten ohjeiden käyttöoikeudet, joita voidaan yhdistää missä tahansa järjestyksessä, peruutetaan.

KAIKKI

Kaikki oikeudet myönnetty tällä hetkellä määritetyille käyttäjille ja/tai määritetyille tietokantaobjekteille. Tätä ehdotusta ei suositella, koska se edistää ohjelmoinnin epäselvyyttä.

(VALITSE | LISÄÄ POISTA PÄIVITYS)

Määritetyltä käyttäjältä evätään määritetyn objektin (esimerkiksi taulukon tai näkymän) määritetty käyttöoikeus. Voit peruuttaa saraketason oikeudet käyttämällä suluissa olevaa sarakeluetteloa.

VIITTEET

Oikeus luoda ja poistaa vieraiden avainten rajoituksia, jotka viittaavat tietokantaobjektiin pääobjektina, peruutetaan.

Käyttäjän oikeus luoda tai poistaa sääntö taulukossa tai näkymässä peruutetaan.

Oikeus suorittaa tallennettua toimintosarjaa, käyttäjän määrittämää toimintoa tai laajennettua tallennettua toimintosarjaa peruutetaan.

järjestelmän etuoikeus

Oikeus suorittaa seuraavat käskyt peruutetaan: CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE, CREATE VIEW, BACKUP DATABASE ja BACKUP LOG.

PÄÄLLÄ [objekti] [(sarake [, ...])]

Käyttäjän käyttöoikeus määritettyyn kohteeseen peruutetaan. Jos objekti on taulukko tai näkymä, voit peruuttaa yksittäisten sarakkeiden käyttöoikeudet. Voit peruuttaa taulukon tai näkymän SELECT-, INSERT-, UPDATE-, DELETE- ja REFERENCES-oikeudet. Taulukon tai näkymän sarakkeissa voit peruuttaa vain SELECT- ja UPDATE-oikeudet. Voit peruuttaa EXECUTE-oikeudet tallennetussa toimintosarjassa, käyttäjän määrittämässä funktiossa tai laajennetussa tallennetussa toimintosarjassa.

[TO | FROM] vastaanottajan nimi | rooli | JULKINEN | VIERAS

Määrittää käyttäjät tai roolit, jotka menettävät määritetyn käyttöoikeuden. Voit käyttää PUBLIC-avainsanaa JULKINEN-roolille (joka sisältää kaikki käyttäjät) määritetyt oikeudet. Voit luetella useita vastaanottajia erottamalla heidän nimensä pilkuilla. Tuettu myös SQL Serverissä Tili GUEST, jota käyttävät kaikki käyttäjät, joilla ei ole omaa merkintää tietokantaan.

Niiden käyttäjien oikeudet, jotka ovat saaneet oikeutensa WITH GRANT OPTION -lausekkeen kautta, poistetaan. Tämä lauseke vaaditaan käytettäessä GRANT OPTION FOR -lauseketta.

AS (ryhmän_nimi roolin_nimi)

Oikeudet, joiden nojalla etuoikeus peruutetaan, on merkitty. Joissakin tapauksissa käyttäjä voi tilapäisesti tarvita tietyn ryhmän oikeuksia ohittaakseen määritetyt oikeudet. Tässä tapauksessa voit käyttää AS-lauseketta tällaisten oikeuksien hankkimiseen.

REVOKE-käskyn kaksi muotoa, REVOKE-objektin käyttöoikeus ja REVOKE system_privilege, ovat toisensa poissulkevia. Älä yritä tehdä molempia operaatioita yhdellä lauseella. Tärkein syntaktinen ero näiden kahden välillä on, että sinun ei pitäisi käyttää ON-lausetta poistaessasi järjestelmän oikeuksia. Voit esimerkiksi poistaa järjestelmän käyttöoikeuden käyttämällä seuraavaa komentoa.

PERUUTA LUO TIETOKANTA, VARMUUSTIETOKANTA dylanilta, katie

Jos käyttäjälle on annettu oikeudet WITH GRANT OPTION -lausekkeen avulla, nämä oikeudet tulee peruuttaa käyttämällä samanaikaisesti kahta lauseketta - WITH GRANT OPTION ja CASCADE. Esimerkiksi:

PERUUTA CASCADE GO -nimikkeiden VALITSEMIS-, LISÄÄMIS-, PÄIVITYS-, POISTAMISAPUVAIHTOEHTO

REVOKE-komentoa voidaan käyttää vain nykyisessä tietokannassa. Näin ollen ANSI-standardivaihtoehdot CURRENTJJSER ja CURRENTROLE oletetaan aina implisiittisesti. REVOKE-käskyä käytetään myös peruuttamaan kaikki DENY-vaihtoehdot.

SQL Server -alusta tukee myös ylimääräistä DENY-lausetta. DENY-käskyn syntaksi on sama kuin REVOKE-käskyn syntaksi. Pohjimmiltaan ne eroavat kuitenkin siinä, että REVOKE neutraloi käyttäjän oikeudet, kun taas DENY kieltää ne nimenomaisesti. Käytä DENY-käskyä estäksesi käyttäjältä tai roolilta pääsyn oikeuksiin, vaikka käyttöoikeus myönnettäisiin nimenomaisesti tai roolimäärityksen kautta.

REVOKE-käskyä on käytettävä aiemmin myönnettyjen tai DENY-oikeuksien poistamiseen. Esimerkiksi käyttäjä kelly jäi pidennetylle äitiyslomalle. Tänä aikana hänen pääsynsä työntekijäpöytään evättiin. Hän palasi ja myönsimme jälleen etuoikeudet.

KIELTÄ KAIKKI työntekijän Kelly GO:lta

PERUUTA KAIKKI Kelly GO:n työntekijät

Tässä esimerkissä REVOKE-komento ei poista hänen oikeuksiaan, vaan se ohittaa DENY-komennon.

Käyttäjän luominen ei sinänsä anna käyttäjälle oikeuksia käyttää tietokantaobjekteja.

Käyttöoikeudet myönnetään GRANT-komennolla. On syytä muistaa, että GRANT-komennon antava käyttäjä voi siirtää tai halutessaan siirtää muille käyttäjille vain ne oikeudet, jotka hänellä itsellään on.

GRANT asettaa tietokantaobjektien oikeudet käyttäjille, rooleille tai muille tietokantaobjekteille. Kun objekti luodaan, vain sen luojalla on siihen oikeudet, ja vain hän voi myöntää oikeuksia muille käyttäjille tai objekteille.

Käyttääkseen taulukkoa tai näkymää käyttäjä tai objekti tarvitsee SELECT-, INSERT-, UPDATE-, DELETE- tai REFERENCES-oikeudet. Kaikki oikeudet voidaan antaa KAIKKI-vaihtoehdolla.

Proseduurin kutsumiseksi sovelluksessa käyttäjällä on oltava EXECUTE-oikeudet.

Käyttäjät voivat saada luvan myöntää oikeuksia muille käyttäjille siirtämällä oikeuksia luettelon mukaisesti , joka määritellään WITH GRANT OPTION -vaihtoehdossa. Käyttäjä voi myöntää muille vain ne oikeudet, jotka hänellä itsellään on.

Käyttöoikeudet voidaan antaa kaikille käyttäjille käyttämällä JULKINEN-vaihtoehtoa käyttäjätunnusluettelon sijaan. JULKINEN-asetuksen määrittäminen vaikuttaa vain käyttäjiin, ei tietokantaobjekteihin.

Luettelo oikeuksista on taulukossa. 8.5

Taulukko 8.5. Luettelo oikeuksista

Oikeudet voi peruuttaa ne myöntänyt käyttäjä REVOKE-komennolla. Jos oikeudet on myönnetty käyttämällä KAIKKI, ne voidaan realisoida vain KAIKKI-tilassa; jos oikeudet myönnettiin käyttämällä PUBLIC-tilaa, ne voidaan realisoida vain PUBLIC-tilassa.

Syntaksi:

GRANT (kaikki /PRIVILEGES] / LJST_ ) PÖYDÄLLÄ ]

(taulukon nimi/näkymänimi)

TO( /LISTA_ /RYHMÄ UNIX_ryhmä^

/SUORITA MENETTELYN KÄYTTÖÖN procname TO

(LISTA_ LISTA_ (APUVAIHTOEHDON KANSSA./)

ILJST_rolename TO (JULKINEN

/LISTA_ (ADKIN-VAIHTOEHDOLLA] );

;;= VALITSE / POISTA / LISÄÄ / PÄIVITYS [ (LIST_col) ] j VIITTEET PT5T_co1) ]

; . = MENETTELY prosessin nimi j TRIGGER trigname j NÄYTÄ näkymän nimi / JULKINEN

;:= käyttäjätunnus I roolinimi

:;= käyttäjätunnus

Taulukko 8.6. Kuvaus GRANT-komennon syntaksielementeistä

Perustelu Kuvaus
etuoikeus Myönnetyn oikeuden nimi. Kelvolliset arvot: SELECT, DELETE, INSERT, UPDATE, REFERENCES
Col Sen sarakkeen nimi, johon oikeudet myönnetään.
Taulukon nimi Olemassa olevan taulukon nimi, jota oikeudet koskevat
Näkymän nimi Olemassa olevan arvostelun nimi, johon oikeudet kohdistuvat
Olemassa olevan tietokantaobjektin nimi (menettely, tarkistus, laukaisu), johon oikeudet liittyvät
käyttäjätunnus Sen käyttäjän nimi, jolle oikeudet siirretään
APUVAIHTOEHDOLLA Antaa siirtoluvat käyttäjille, jotka on lueteltu luettelossa LIST_
roolinimi CREATE ROLE -komennolla luodun olemassa olevan roolin nimi
Käyttäjä, jolle roolioikeudet on annettu. Käyttäjäluettelo on määritettävä tiedostossa isc4.gdb (joka on luotu esimerkiksi IBConsole-apuohjelmalla)
GROUP unix_group UNIX-ryhmän nimi määritetty tiedostossa /etc/group

Seuraava komento antaa käyttäjälle SELECT- ja DELETE-oikeudet. WITH GRANT OPTION -vaihtoehto antaa oikeudet niiden edelleen siirtoon.

Esimerkki 8.5

Ja tämä komento antaa oikeuden suorittaa proseduuri toiselle proseduurille ja käyttäjälle.

Esimerkki 8.6

MYÖNTÄ SUORITTAA MENETTELYN TEKIJÄN PBOOKAUTHOR, MISHA;

Tässä tapauksessa oikeuksien siirtäminen tietokannassamme olevaan PBOOKAUTHOR-proseduuriin on merkityksetöntä, koska se ei yksinkertaisesti käytä PAUTHOR-proseduuria, mutta syntaktisesti se on aivan oikein.

Seuraava komento on sisällöltään täysin samanlainen kuin esimerkki 8.5, mutta se keskittyy sulautetun SQL:n käyttöön.

Esimerkki 8.7 EXEC SQL

MYÖNTÄ VALITSE, POISTA TBOOKISTA MISHALLE MYÖNNETTÄVÄN VAIHTOEHTOLLA;

Oikeuksien purkaminen. REVOKE-komento

REVOKE poistaa tietokantaobjektien käyttöoikeudet. Oikeudet ovat käyttäjälle sallittuja toimintoja objektin kanssa. SQL-oikeudet on kuvattu taulukossa. 8.7

REVOKE-komennon käytössä on joitain rajoituksia. Vain ne myöntänyt käyttäjä voi realisoida oikeudet. Yhdelle käyttäjälle voidaan antaa samat oikeudet tietokantaobjektiin miltä tahansa määrältä eri käyttäjiä. REVOKE-komento merkitsee tämän tietyn käyttäjän aiemmin myöntämien oikeuksien menettämistä. Kaikille käyttäjille PUBLIC-vaihtoehdon myöntämät oikeudet voidaan peruuttaa vain REVOKE-komennolla, jossa on PUBLIC-vaihtoehto. Syntaksi:

PERUUTA käyttäjätunnus / JULKINEN :;= /"USER7 käyttäjätunnus

Seuraava komento poistaa käyttäjän oikeudet poistaa taulukosta (katso esimerkki 8.5, tässä tapauksessa hänellä on edelleen lukuoikeudet).

Esimerkki 8.8

PERUUTA POISTA ON OTTI MISHASTA;

Ja tämä komento poistaa oikeuden suorittaa proseduuri toiselta proseduurilta ja käyttäjältä (katso vastaavien oikeuksien korostaminen esimerkissä 8.6)

PERUUTA .SUORITA MENETTELYN TEKIJÄLLE PROCEDURE PBOOKAUTHOR, MISHA;

 Yläosa