2. SQL-KEEL ANDMEBAASIADMINISTRAATORI JAOKS |
|
|
|
2.1. Andmebaasiadministraator ja SQL-keel |
|
|
|
Enamik tänapäeval kasutatavaid andmebaasisiüsteeme on n.n. SQL-andmebaasid. See tähendab seda, et andmebaasi mootoriga suhtlemiseks kasutatakse SQL-keelt (Structured Query Language). Vaatamata selle keele „petlikule“ nimele, mis väidab, et tegemist on päringukeelega sisaldab ta oluliselt rohkem kui ainult päringute tegemise vahendeid. Nii on ju selle keelega võimalik andmestruktuure kirjeldada ja andmetega manipuleerida. Samuti moodustab ühe osa SQL-keelest korralduste kogum, millega andmebaasiadministraatorid saavad luua kasutajaid, anda neile õigus ja häälestada ka konkreetse andmebaasi parameetreid. Loomulikult kuulub administraatori „tööriista kotti“ ka SQL-keele see osa, mis võimaldab luua ja muuta andmebaasistruktuure, kuid seda osa SQL-keelest käsitletakse „Andmebaasialuste“ kursuse raames. |
|
|
SQL - Structured Query Language |
2.2. Andmebaasi kasutajad |
|
|
|
Kuna suur osa andmebaasi administraatori tööst on seotud kasutajate ja nende õiguste haldamisega, siis anname kõigepealt ülevaate erinevatest kasutajate gruppidest andmebaasides. Kohati võib tunduda siin kirjeldatu juba varem kirjeldatu kordamisena, Nii see ongi, kuid kirjelduste struktuur on eelnevalt kirjeldatust oluliselt erinev ja kannab endas hoopis teistsugust tähendust. |
|
|
Erinevad kasutajate grupid |
2.2.1. Andmebaasi administraatorid (Database Administrator – DBA) |
|
|
|
||
Igal andmebaasil on vähemalt üks andmebaasiadministraator (DBA). Kui andmebaasid on suured ja kasutajaid on palju siis on vaja ka rohkem DBA-sid. Sellisel juhul on grupp DBA-sid, kes jagab vastutust ja kelledest tavaliselt üks on teiste juht. |
|
|
DBA |
||
Andmebaasiadministraatori vastutuspiirkond hõlmab järgmisi tegevusi: |
|
|
DBA ülesanded |
||
|
● |
Andmebaasiserveri ja töövahendite installeerimine |
|
|
Tarkvara installeerimine |
|
● |
Veaparanduste (bug fix, patch, PTF) ja uute versioonide (upgrade) turule tuleku jälgimine |
|
|
Veaparanduste ja uuenduste paigaldamine |
|
● |
Mälu eraldamine andmebaasile ja tulevikus vaja minevate mälumahtude hindamine |
|
|
Mälu eraldamine |
|
● |
Primaarsete andmebaasistruktuuride loomine (tablespace) – aluseks on süsteemi arendajatelt saadud informatsioon |
|
|
Mälueralduste tegemine |
|
● |
Tabelite, vaadete, indeksite seoste jms. loomine andmebaasi – aluseks on süsteemi arendajatelt saadud informatsioon. |
|
|
Andmestruktuuride loomine |
|
● |
Andmestruktuuride jm modifitseerimine – aluseks on süsteemi arendajatelt saadud informatsioon |
|
|
Andmestruktuuride muutmine |
|
● |
Kasutajate registreerimine ja süsteemi turvalisuse tagamine |
|
|
Kasutajate haldamine |
|
● |
Tagama litsentsitingimuste täitmise jälgimine |
|
|
Litsentsitingimuste jälgimine |
|
● |
Andmebaasile juurdepääsu juhtimine ja monitoorimine |
|
|
Juurdepääsu haldamine |
|
● |
Andmebaasi jõudluse monitoorimine ja optimiseerimine |
|
|
Jõudluse haldamine |
|
● |
Andmete varundamise planeerimine ja läbiviimine (backup) |
|
|
Andmete varundamine |
|
● |
Andmete taastamine (recovery) |
|
|
Andmete taastamine |
|
● |
Andmete arhiveerimine ja arhiveeritud andmete säilimise tagamine |
|
|
Andmete arhiveerimine |
|
● |
Enesetäiendamine |
|
|
Enesetäiendamine |
2.2.2. Turvaadministraator (Security Officer) |
|
|
|
Mõningatel juhtudel on andmebaasidel spetsiifilised andmebaasi administraatorid – turvaadministraatorid. Turvaadministraator on piiratud õigustega administraator, kelle õigused on piiratud kasutajate haldamise (lisamine, kustutamine) ja kasutajatele andmebaasi kasutamiseks õiguste andmise ja muutmise tegevustega. Seda kasutatakse siis, kui baasis on palju kasutajaid. Kui süsteemis on kasv või üks turvaadministraator, siis on kogu süsteemsete õiguste jagamine turvaadministraatorite käes ja teistel DBA-de vastutuspiirkond sellesse valdkonda ei laiene. |
|
|
Kasutajate õiguste haldamine |
Tihti on turvaadministraatorid regionaalsed või struktuurilised – st vastutavad kas mingis konkreetses geograafilises piirkonnas töötavatele kasutajatele antud õiguste adekvaatsuses eest või siis mingi konkreetse ettevõtte struktuuriüksuses töötavatele andmebaasi kasutajatele antud õiguste adekvaatsuse eest. |
|
|
Regionaalsed turvaadministraatorid |
2.2.3. Andmebaaside kavandajad (Database designers) |
|
|
|
Andmebaaside kavandajad loovad andmemudeleid (database models). Nende vastutuspiirkond on määratud järgmiste tegevustega: |
|
|
Tarkvaraarendaja ülesanded |
|
● |
Andmestruktuuride kavandamine |
|
|
Andmebaaside kavandamine |
|
● |
Andmebaaside mäluvajaduste planeerimine |
|
|
Mäluvajaduste kalkuleerimin |
|
● |
Andmebaasistruktuuride muudatuste kavandamine |
|
|
Muudatuste kavandamine |
|
● |
Informatsiooni edastamine andmebaasi administraatorile |
|
|
Info edastamine |
Paljusid tegevusi teevad tarkvara arendajad koostöös andmebaasiadministraatoritega |
|
|
|
2.2.4. Tarkvaraarendajad (Application Developers) |
|
|
|
Tarkvaraarendajad loovad ja rakendavad andmebaasiprogramme (database applications). Nende vastutuspiirkond on määratud järgmiste tegevustega: |
|
|
Tarkvaraarendaja |
|
● |
Andmebaasirakenduste (Database Application) loomine (Development) |
|
|
Rakenduste loomine |
|
● |
Arendus-aegne rakenduste häälestamine/parameetriseerimine |
|
|
Rakenduste häälestamine |
|
● |
Rakenduste turvatasemete määramine ja seda tagavate vahendite loomine |
|
|
Turvatasemete loomine |
Viimast kahte tegevust teevad tarkvara arendajad koostöös andmebaasiadministraatoritega |
|
|
Koostöö |
2.2.5. Rakenduste administraatorid (Application Administrators) |
|
|
|
Rakenduse administraatoreid nimetatakse ka operaatoriteks. Igal rakendusel peab olema oma administraator. Mitmel rakendusel võib olla administraatoriks sama inimene. Kui andmebaasi administraator tagab andmebaasi füüsilise toimimise (et kõik tehnilised komponendid oleksid olemas ja toimiksid koos), siis rakenduse administraator tagab rakenduse korrektse loogilise toimimise – et kõik protsessid töötaksid koos ja annaksid õige tulemuse ja et kasutajad saaksid seda rakendust kasutada just ettenähtud kohas ja ettenähtud viisil. |
|
|
Kasutatavuse administreerimine |
2.2.6. Andmebaasi kasutajad (Database User) |
|
|
|
||
Andmebaasikasutajad suhtlevad andmebaasiga kas rakenduste või andmebaasi utiliitide kaudu. Andmebaasi kasutaja vastutus on kaetud järgmiste tegevustega: |
|
|
Andmete kasutamine |
||
|
● |
Andmete lisamine, uuendamine ja kustutamine, nendes piirides, mis konkreetsele kasutajale on lubatud |
|
|
Andmetega manipuleerimine |
|
● |
Raportite genereerimine, nendes piirides, mis temale on lubatud |
|
|
Andmete pärimine andmebaasist |
|
● |
Andmete edastamine väljapoole andmebaasi so. Andmete välja võtmine andmebaasist mingile andmekandjale (paber, CD, DVD, FlashDisk, fail) ja edastamine sellistesse kohtadesse ja isikutele, kelle puudub ligipääs sellele andmebaasile, kes/mis ei ole ise suutelised andmeid konkreetsest baasist saama. |
|
|
Andmete edastamine |
2.3. Õiguste jagamise ja tagamine andmebaasides (ORACLE näitel) |
|
|
|
Kasutajate õiguste haldamise andmebaasides võib jagada neljaks grupiks: kasutajate loomine ja „hävitamine“, kasutajagruppide loomine ja „hävitamine“, lkasutajatele ja kasutajagruppidele ressursi õiguste andmine ja ära võtmine ning kasutajatele ning kasutaja gruppidele süsteemsete õiguste andmine ja ära võtmine. |
|
|
Kasutajaõiguste haldamise iseloom |
2.3.1. Kasutajate loomine ja „hävitamine“ |
|
|
|
||
Andmebaasi õigusi andmebaasis toimimiseks saab anda ainult andmebaasi kasutajale. Seega on kellegi andmebaasi kasutajaõiguste andmise esimeseks sammuks uue kasutaja loomine andmebaasi. Seda tehakse olenemata andmebaasijuhtumise süsteemist. |
|
|
Andmebaasi kasutaja |
||
Koos kasutaja loomisega antakse kasutajale tavaliselt kohe ka mõned baasõigused, mida tulevikus antavate õigustega laiendatakse või õiguste piiramisega kitsendatakse. |
|
|
Baasõigused ja nende laiendamine |
||
Oracle 11.2 SQL-keeles on andmebaasi kasutaja loomise lause CREATE USER: |
|
|
Kasutaja loomine |
||
http://download.oracle.com/docs/cd/E11882_01/server.112/e10592/statements_8003.htm#sthref5461 |
|
|
Süntaksi kirjeldus ORACLE veebis |
||
|
|
CREATE USER lihtsustatud süntaks |
|||
Kasutaja nimi “user” peab olema unikaalne ja see on 1-30 sümbolit pikk ja vastav Oracle nime moodustamise standardile. |
|
|
Nime kuju |
||
http://download.oracle.com/docs/cd/E11882_01/server.112/e10592/sql_elements008.htm |
|
|
Nime standardi kirjeldus ORACLE veebis |
||
Samad reeglid kehtivad võtmesõna (“password”) moodustamise kohta. |
|
|
Võtmesõna kuju |
||
Kõige lihtsam CREATE USER-lause on: |
|
|
NÄIDE |
||
|
CREATE USER mart IDENTIFiED BY kolla; |
|
|
|
|
Siin “mart” on kasutaja nimi ja “kolla” tema võtmesõna (password). Ülejäänud lisad kirjeldavad juba täiendavaid piiranguid: |
|
|
|
||
Süntaksi diagrammis kirjeldatud ülejäänud keelekonstruktsioonid kirjeldavad võimalikke täiendavaid piiranguid. |
|
|
Süntaksi selgitused |
||
DEFAULT TABLESPACE – määrab andmebaasi tablespace, kuhu tehakse kasutaja poolt loodud andmestruktuurid, kui kasutaja enne tabeli loomist ei määra, millisesse tablespace'sse ta soovib tabeli luua.. Kui see on määramata, siis tehakse need tablespace'sse SYSTEM |
|
|
DEFAULT TABLESPACE |
||
TEMPORARY TABLESPACE – määrab andmebaasi tablespace, kuhu tehakse kasutaja poolt loodud ajutised andmestruktuurid. Kui see on määramata, siis tehakse need tablespace'sse SYSTEM. |
|
|
TEMPORARY TABLESPACE |
||
QUOTA – piirab (M –megabaitides, K- kilobaitides), kui palju mingis konkreetses tablespace's antud kasutajale “ruumi” eraldatakse. |
|
|
QUOTA |
||
PROFILE – profile on “eelkirjeldatud” piirangute komplekt, mis on salvestatud andmebaasi mingi nime all. Antud korraldus määrab loodavale kasutajale kõik antud komplektiga määratud piirangud. |
|
|
PROFILE |
||
PASSWORD EXPIRE – määrab, et kasutaja peab esimesel andmebaasi sisse logimisel, pärast selle kasutaja loomist, muutma oma võtmesõna. |
|
|
PASSWORD EXPIRE |
||
ACCOUNT – kas luuakse avatud või suletud kasutaja. |
|
|
ACCOUNT |
||
Kasutaja saab baasist ka kustutada. Selleks kasutatakse käsku DROP USER: |
|
|
Kasutaja „hävitamine“ |
||
http://download.oracle.com/docs/cd/E11882_01/server.112/e10592/statements_9008.htm#SQLRF01811 |
|
|
Süntaksi kirjeldus ORACLE veebis |
||
|
|
|
DROP USER süntaks |
||
Kui lisada fraas CASCADE, kustutatakse enne kasutaja kustutamist baasist ära ka kõik tema poolt loodud andmestruktuurid |
|
|
CASCADE |
||
Kasutaja kustutamiseks baasist jättes baasis alles kõik tema loodud andmestruktuurid, tuleb Oracle 9i versioonis kirjutada SQL-korraldus: |
|
|
NÄIDE |
||
|
DROP USER mart; |
|
|
|
|
Olemasoleva kasutaja parameetrite muutmiseks kasutatakse käsku ALTER USER. Selle käsu kirjelduse leiab aadressil: |
|
|
Kasutaja õiguste muutmine |
||
http://download.oracle.com/docs/cd/E11882_01/server.112/e10592/statements_4003.htm#SQLRF01103 |
|
|
Süntaksi kirjeldus ORACLE veebis |
||
Igas andmebaasis on alati vähemalt üks selline kasutaja, kelle nimi on määratud. See kasutaja on süsteemiadministraator. Selle kasutaja nime ei saa muuta ega seda kasutajat ei saa kustutada. Erinevates andmebaasisüsteemides on tema nimi erinev. Näiteks Centura SQLBases on süsteemiadministraatori nimi “SYSADM”, SyBase-s “ ja SQLServer-is “sa” ja ORACLE’s “SYSTEM”. |
|
|
Eeldefineeritud kasutaja |
||
Süsteemiadministraator on eriline kasutaja – temal on kõik õigused kõikidele andmebaasis olevatele struktuuridele – olenemata sellest, kes need loonud on või kelle omad need parasjagu on! Tema võib kasutada andmebaasi kõiki struktuure, muuta iga kasutaja privileege ja ka neile kuuluvate andmestruktuuride omandust. |
|
|
Süsteemiadministraator |
2.3.2. Kasutajagruppide (rollide) loomine ja „hävitamine“ |
|
|
|
||
Väga tülikas on spetsifitseerida õigusi igale kasutajale eraldi. Lisaks sellele on see veel ka mõttetu – kasutajad on nii või teisiti päris suurte gruppide kaupa samade õigustega. Seepärast on enamikes andmebaasisüsteemides kas mõiste “kasutajagrupp” või “roll”. Need mõisted on täiesti identsed ja lihtsalt erinevates baasides kasutatakse erinevat mõistet. |
|
|
Rollid andmebaasis |
||
Oracle kasutab mõistet “roll”. Rolli loomiseks baasi on käsk CREATE ROLE: |
|
|
Uue rolli loomine |
||
http://download.oracle.com/docs/cd/E11882_01/server.112/e10592/statements_6012.htm#SQLRF01311 |
|
|
Süntaksi kirjeldus ORACLE veebis |
||
|
|
|
CREATE ROLE lihtsustatud süntaks |
||
Rolli nimi on baasi ulatuses unikaalne ja sisaldab 1-30 sümbolit ja vastav Oracle nime moodustamise standardile. |
|
|
|
||
http://download.oracle.com/docs/cd/E11882_01/server.112/e10592/sql_elements008.htm#i27570 |
|
|
Nime standardi kirjeldus ORACLE veebis |
||
Rolli lisamiseks serverile, tuleb Oracle 11.2 versioonis kirjutada SQL-korraldus: |
|
|
NÄIDE |
||
|
CREATE ROLE tudeng; |
|
|
|
|
Kui kasutaja loomise korraldusele lisada fraas NOT IDENTIFIED, siis saavad kõik kasutajad, kellega on antud rolli õigused seotud, õigusi kasutada, ilma spetsiaalset võtmesõna esitamata. Kui on lisatud IDENTIFIED BY fraas, siis antud rolli õiguste kasutusele võtmiseks peab kasutaja määrama rolli ja võtmesõna. |
|
|
NOT IDENTIFIED |
||
EXTERNALLY fraas määrab et õigusi grupile kontrollitakse lokaalse töökoha operatsioonisüsteemi õiguste süsteemist. |
|
|
EXTERNALLY |
||
GLOBALLY fraas määrab, et õigusi rollile kontrollitakse globaalsest directory serverist. |
|
|
GLOBALLY |
||
Rolli saab baasist ka kustutada. Selleks kasutatakse käsku DROP ROLE: |
|
|
Rolli „hävitamine“ |
||
|
|
|
DROP ROLE süntaksi kirjeldus |
||
http://download.oracle.com/docs/cd/E11882_01/server.112/e10592/statements_8029.htm#SQLRF01530 |
|
|
DROP ROLE süntaksi kirjeldus ORACLE veebis |
||
Rolli kustutamiseks baasist jättes baasis alles kõik tema loodud andmestruktuurid, tuleb Oracle 11.2 versioonis kirjutada SQL-korraldus: |
|
|
NÄIDE |
||
|
DROP ROLE tudeng; |
|
|
|
|
Kui roll baasist kustutada kaotavad kõik antud rolliga seotud kasutajad selle rolliga seotud õigused. |
|
|
Õiguste kadu |
2.3.3. Eelkirjeldatud (predefined) rollid |
|
|
|
Igas andmebaasisüsteemis on teatav hulk eelkirjeldatud rolle. Sellisteks rollideks on näiteks süsteemiadministraator ja andmebaasiadministraator. Erinevatel andmebaasisüsteemidel on need rollid erinevad. Siiski on nendeks (olenemata rollide konkreetsetest nimedest erinevates baasides) tavaliselt “database administrator” (süsteemi administraator), “user” (lihtkasutaja) ja “recovery manager” (andmebaasi kindluskoopiate ja taaste korraldaja) |
|
|
Eelkirjeldatud rolli tähendus |
Oracle täielik eelkirjeldatud rollide loend on tabelis nr. 11-1 aadressil: |
|
|
ORACLE eelkirjeldatud rollid |
http://download.oracle.com/docs/cd/B19306_01/network.102/b14266/admusers.htm |
|
|
Eelkirjeldatud rollide kirjeldused ORACLE veebis |
2.3.4. Süsteemsed õigused |
|
|
|
||
Süsteemseteks õigusteks nimetatakse õigusi teostada baasis mingeid toiminguid. Süsteemseid õigusi saab anda kas kasutajale või rollile. Rollile antud õigused saab hiljem volitada komplektina kasutajatele või teistele rollidele. Seda nimetatakse õiguste jagamiseks kaskaadina (CASCADE). |
|
|
Õigused teha toiminguid |
||
Oracle 11.2 SQL-keeles on süsteemsete õiguste andmise käsu süntaks järgmine: |
|
|
Süsteemsete õiguste andmine |
||
http://download.oracle.com/docs/cd/E11882_01/server.112/e10592/statements_9013.htm#SQLRF01603 |
|
|
Süntaksi kirjeldus ORACLE veebis |
||
|
|
|
GRANT korralduse süntaks |
||
Esimene grupp kirjeldab, millised privileegid antakse – kas mõni (loend) süsteemseid (system_privilege) privileege, rolliga määratud privileegid (role) või kõikvõimalikud privileegid (ALL PRIVILEGES). Teine grupp määrab loendi rollidest ja kasutajatest (user, role), kellele need privileegid antakse või võtmesõna PUBLIC, mis tähendab, et määratud õigused antakse kõigile kasutajatele – nii nendele kes on juba olemas, kui ka nendele kes luuakse tulevikus. |
|
|
|
||
Kui määratud on (IDENTIFIED BY) password, siis saavad neid õigusi kasutada ainult need, kes teavad passwordi.
|
|
|
IDENTIFIED BY |
||
Kui lisatud on fraas WITH ADMIN OPTION, siis antaks määratud kasutajatele õigus ka administraatorina õigusi edasi anda. |
|
|
WITH ADMIN OPTION |
||
Näiteks on Oracle's sagedamini antavateks privileegideks privileegid:
|
|
|
Enam antavad privileegid |
||
CREATE SESSION |
- |
|
|
|
CREATE SESSION |
CREATE PROCEDURE |
- |
|
|
|
CREATE PROCEDURE |
EXECUTE ANY PROCEDURE |
- |
|
|
|
EXECUTE ANY PROCEDURE |
CREATE TABLE |
- |
|
|
|
CREATE TABLE |
CREATE VIEW |
- |
|
|
|
CREATE VIEW |
|
|
|
NÄIDE |
||
CREATE ROLE student; |
|
|
Rolli loomine |
||
GRANT AUDIT SYSTEM, CREATE PROCEDURE, CREATE SEQUENCE, CREATE SESSION, CREATE SYNONYM, CREATE PUBLIC SYNONYM, CREATE TABLE, SELECT ANY TABLE, CREATE TRIGGER, CREATE TYPE, CREATE VIEW TO student;
|
|
|
Rollile privileegide andmine |
||
Ja nüüd anname selle rolli õigused kasutajale ”mart”:
|
|
|
|
||
GRANT student TO mart;
|
|
|
Rolli õiguste andmine kasutajale |
||
Täielik loend “system_privilege”-sid on tabelis nr.18-1 aadressil : |
|
|
Süsteemsete õiguste loend |
||
http://download.oracle.com/docs/cd/E11882_01/server.112/e10592/statements_9013.htm#SQLRF01603 |
|
|
Süstemsete õiguste kirjeldused ORACLE veebis |
||
Õiguste andmine võib tähendada ka õiguste ära võtmist. Täpselt nii nagu GRANT käsuga saab anda süsteemseid õigusi, saab neid ära võtta REVOKE-käsuga: |
|
|
Õiguste „andmine“ õiguste ära võtmise teel |
||
http://download.oracle.com/docs/cd/E11882_01/server.112/e10592/statements_9020.htm#SQLRF01609 |
|
|
REVOKE korralduse süntaksi kirjeldus ORACLE veebis |
||
|
|
|
REVOKE korralduse süntaks |
||
Võtame näiteks rollilt “student” ära õiguse luua SEQUENCE-sid:
|
|
|
NÄIDE |
||
REVOKE CREATE SEQUENCE FROM student; |
|
|
|
||
ÄRA VÕTTA SAAB AINULT NEID ÕIGUSI, MIS VAREM ON ANTUD. NEID ÕIGUSI MIDA POLE ANTUD EI SAA KA ÄRA VÕTTA! |
|
|
TÄHELEPANU! |
2.3.5. Õigused objektide kasutamiseks (object rights) |
|
|
|
Lisaks üldistele süsteemsetele õigustele saab igale kasutajale anda õigusi ka teiste kasutajate poolt loodud andmebaasistruktuuride (andmebaasiobjektide) kasutamiseks. Selliseid õigusi saab anda kas objektide omanik (looja ise) või andmebaasiadministraatori õigustes isik või isik kellele on antud objektile õigused koos õiguste edasiandmise õigusega |
|
|
Õigused objektide kasutamiseks |
Objekti/ressursi kasutamise õiguse määramiseks tuleb määrata õigus (õigused), mis antakse ja seejärel objekt millele õigused antakse ja seejärel see (need) kellele õigus (õigused) antakse. Õiguse saajaks võib olla nii kasutaja kui roll. |
|
|
Õigus, selle andja ja õiguse saaja |
Enda loodud objektide/ piiramatu kasutamise õigus on vaikimisi igal objekti loojal. Ise asi on see, kas kasutajal on mingeid (süsteemseid) õigusi objektide loomiseks. |
|
|
Enda loodud objektide piiramatu kasutamise õigus |
Oracle 11.2-s näeb käsk GRANT objekti/i õiguste määramisel välja järgmine: |
|
|
|
http://download.oracle.com/docs/cd/E11882_01/server.112/e10592/statements_9013.htm#SQLRF01603 |
|
|
GRANT korralduse süntaks ORACLE veebis |
|
|
|
GRANT korralduse süntaks |
Esimeses grupis määratakse ära privileeg (või kõik privileegid – ALL PRIVILEGES) ja objekti komponendid (näiteks tabeli veerud) , millele antud õigusi rakendatakse. Seejärel määratakse ära andmebaasi objekt (schema.object – näiteks tabel), mille komponentidele õigusi määratakse. Seejärel määratakse loend rollidest ja kasutajatest (user, role), kellele need privileegid antakse või võtmesõna PUBLIC, mis tähendab, et määratud õigused antakse kõigile kasutajatele– nii nendele kes on juba olemas, kui ka nendele kes luuakse tulevikus. |
|
|
|
Kui lisatakse fraas “WITH GRANT OPTION”, siis on nendel kasutajatel või rollidel, kellele õigus antakse, neid õigusi teistele kasutajatele edasi volitada. |
|
|
WITH GRANT OPTION |
WITH HIERARHCHY OPTIONS fraasi lisamine garanteerib kirjeldatud õigused ka määratud objektide kohta kirjeldatud alamobjektidele (tabelite korral näiteks ka kõigile antud tabelile kirjeldatud VIEW-dele). |
|
|
WITH HIERARCHY OPTIONS |
Objektile antavateks privileegideks on näiteks: DELETE, INSERT, UPDATE või SELECT, mis annavad näiteks õiguse tabelist kustutada kirjeid, lisada sinna uusi kirjeid, uuendada sela olevate kirjete andmeid ja vaadata tabelis olevaid andmeid. |
|
|
DELETE, INSERT, UPDATE, SELECT |
Anname näiteks kasutajale “mart” ja rollile “student” õiguse vaadata tabeli RASPEL.ISIK (kasutaja RASPEL poolt loodud tabel ISIK) veerge “ID”, “NIMI”, “PERENIMI” ja “PALK”. Uuendada lubame ainult veerge “NIMI” ja “PERENIMI”: |
|
|
NÄIDE |
GRANT SELECT (ID, NIMI, PERENIMI, PALK), UPDATE (NIMI, PERENIMI) RASPEL.ISIK TO mart, student; |
|
|
|
Täielik loend “object_privilege”-sid on tabelis nr. 18-2 aadressil: |
|
|
Objekti õiguste loend |
http://download.oracle.com/docs/cd/E11882_01/server.112/e10592/statements_9013.htm#SQLRF01603 |
|
|
Objekti õiguste loend ORACLE veebis |
Objekti kasutamiseks „õiguste andmine“ võib tähendada ka õiguste ära võtmist. Täpselt nii nagu GRANT käsuga saab anda objektikasutamise õigusi, saab neid ära võtta REVOKE-käsuga. |
|
|
„Õiguste andmine“ võib tähendada ka nende ära võtmist |
http://download.oracle.com/docs/cd/E11882_01/server.112/e10592/statements_9020.htm#SQLRF01609 |
|
|
REVOKE käsu süntaksi kirjeldus ORACLE veebis |
|
|
|
REVOKE käsu sünkats |
Võtame näiteks rollilt student ära õigused näha tabelis RASPEL.ISIK veeru PALK väärtusi:
|
|
|
NÄIDE |
REVOKE SELECT (PALK) RASPEL.ISIK FROM student CASCADE CONSTRAINT;
|
|
|
|
ÄRA VÕTTA SAAB AINULT NEID ÕIGUSI, MIS VAREM ON ANTUD. NEID ÕIGUSI MIDA POLE ANTUD EI SAA KA ÄRA VÕTTA! |
|
|
TÄHELEPANU! |
2.4. Kasutajate autoriseerimine |
|
|
|
Kasutaja baasisisse logimiseks on igal andmebaasisüsteemil CONNECT käsk. Kuigi selle süntaks võib olla erinev on sisu üks – kasutaja esitab oma kasutajanime, salasõna ja võib olla veel mingeid juhtandmeid, baas kontrollib nende vastavust enda registreeritud kasutajate omadega ja vastava nimega ning salasõnaga registreeritud kasutaja olemasolul käivitab seansi. |
|
|
CONNECT-korraldus |
Oracle 11.2 süntaksi järgi on CONNECT-käsu süntaks järgmine |
|
|
|
CONN[ECT] { logon | / } [AS {SYSOPER|SYSDBA}] |
|
|
CONNECT-korralduse süntaks |
kus logon on järgmine kombinatsioon: username/password[@database] |
|
|
|
/ - tähistab vaikimisi login-i, kus login parameetrid võetakse lokaalsest operatsioonisüsteemist. |
|
|
Logimine operatsioonisüsteemi parameetritega |
http://download.oracle.com/docs/cd/E11882_01/server.112/e10595/dba003.htm#ADMIN12477 |
|
|
CONNECT-korralduse kirjeldus ORACLE veebis |
Kui kasutajal on SYSOPER või SYSDBA privileegid, siis saab ta baasi logida kas neid privileege kasutades või mitte. Kui vastavaid fraase mitte kasutada logitakse kasutaja baasi kui tavaline kasutaja, kellel on kõik temale antud õigused. |
|
|
SYSOPER ja SYSDBA |
Paljudel juhtudel ei ole vaja seda käsku kasutada, kuna programmidele on “ehitatud külge” login-aken, kus on väljad kasutaja nime, võtmesõna ja andmebaasi nime sisestamiseks. |
|
|
LOGIN-aken |
ÜLESANNE |
|
|
ÜLESANNE |
Leidke siin konspektis toodud andmebaasisüsteemi ORACLE käskude vasted andmebaasisüsteemis SQLBase. Andmebaasisüsteemi SQLBase SQL-keele juhendi leiate SIIT. |
|
|
|
See ülesanne aitab teil ennast ettevalmistada harjutusülesannete lahendamiseks. |
|
|
OLULINE !!!! |