Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
77.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
53 Кб
Скачать
☆

17.1 Кестесі

A-қолданушы

 B-қолданушы

 C-қолданушы

D-қолданушы

E-қолданушы

GRANT INSERT ON Тауар TO B WITH GRANT OPTION

Құқықтарды алу

GRANT INSERT ON Тауар TO C WITH GRANT OPTION

B-дан құқықты алу E-ден құқықты алу

GRANT INSERT ON Тауар TO C WITH GRANT OPTION

GRANT INSERT ON Товар TO D

Құқықты алу

REVOKE INSERT ON Тауар TO B CASCADE

Құқықты қайтару

Құқықты сақтау

Құқықты сақтау

Құқықты сақтау

Берілгендермен жұмыс және сақтаулы процедуралардың орындалуы ДҚ обьекттеріне рұқсатқа құқық, рұқсат класының бар болуын талап етеді. Обьекттерде кестелер, кесте бағандары, көрсетімдер, сақтаулы процедуралар орындалады.

Әр түрлі обьекттер үшін оларға қатынаудың әртүрлі құқықтар жиынтығы қолданылады:

• SELECT, INSERT, UPDATE, DELETE, REFERENCES- көрсетімдер немесе кестелер үшін

• SELECT, UPDATE – нақты кесте бағаны немесе көрсетім үшін

• EXECUTE –сақтаулы процедуралар мен функциялар үшін

Insert құқығы кестеге жаңа жолдар қосуға мүмкіндік береді немесе көрсетім кесте немесе көрсетім деңгейінде беріледі; ол баған деңгейінде беріле алмайды.

UPDATE құқығы ондағы барлық мәліметтерді өзгертуге мүмкіндік беретін кесте деңгейінде немесе мәліметтерді оның деңгейінде өзгертуге мүмкіндік беретін жеке баған деңгейінде беріледі.

DELETE құқығы кестеден жолдарды немесе көрсетімдерді өшіруге мүмкіндік береді, ол тек кесте немесе көрсетім деңгейінде беріледі, бірақ ол баған деңгейінде беріле алмайды.

SELECT құқығы мәліметтерді таңдауға мүмкіндік береді және ол кесте деңгейінде және жеке баған деңгейінде беріле алады.

REFERENCES құқығы көрсетілген обьектіге аударылу мүмкіндігін ұсынады. Мұндай кестелерге қолдану сыртқы кілттерді, алғашқы кілтке немесе бұл кестенің ерекше бағанына аударылуды шешеді.

Құқықтарды ұсыну

Қолданушы рұқсатының ДҚ обьекттеріне рұқсатын басқару үшін төмендегі командаларды қолданамыз:

<предоставление_привилегий>::=

GRANT { ALL [ PRIVILEGES] | <артықшылық>

[,...n]}

{ [( баған аты [,...n])]

ON { кесте аты |

Көрсетім аты} |

ON {кесте аты |

Көрсетім аты }

([баған аты

[,...n])]

| ON {сақтаулы процедура аты |

Сыртқы процедура аты}}

TO { қолданушы аты | топ аты |

Рөл аты} [,...n]

[WITH GRANT OPTION ]

[AS {топ аты | рөл аты }]

<артықшылық> параметрі келесі конструкцияы ұсынады:

<привилегия>::=

{SELECT | DELETE | INSERT |

UPDATE | EXECUTE | REFERENCES }

WITH GRANT OPTION параметрі сіз басқа қолданушылар обьектісіне рұқсатты тағайындау құқығын ұсынатын қолданушыға көмектеседі. Оның қолданылуы бұл қолданушы басқа қолданушыларға рұқсат құқығына ұсынысты басқаруда ерекше ептілікті қажет етеді. Ең дұрысы құқықтарды тағайындау мүмкіндігіне ие қолданушы шеңберін шектеу.

AS {топ аты | рөл аты } міндетті емес параметрі басқа қолданушыларға құқық ұсынуды қамтамасыз ететін рөлдегі қолданушының қатысымын көрсетуге мүмкіндік береді.

Сақтау процедурасында ұсынылатын жалғыз рұқсат құқығы –оны орындау құқығы(EXECUTE ). Әрине, бұдан бөлек сақтау процедурасының иесі оны көріп, оның кодын өзгерте алады.

Функциялар үшін оның орындалуына құқық беруге болады, сонымен қатар олар аударылатын обьекттермен функцияларды байланыстыру мүмкіндігін қамтамасыз ететін REFERENCES құқығы. Мұндай байланысу обьекттері функция жұмысының бұзылуына әкелуі мүмкін құрылымына өзгерту енгізуді тыйым сала алады.

SQL командаларының орындалу құқығы

Бұл құқық класы ДҚ-да обьекттерді, ДҚ-дың өзін құру және резервті көшіру процедураларын орындау мүмкіндігін басқарады. SQL командаларының орындалуына құқықты ұсыну үшін келесі командаларды қолдануға болады:

<орындау құқығын ұсыну>::=

GRANT {ALL | <команда>[,...n]}

TO {қолданушы аты | топ аты |

Рөл аты} [,...n]

Параметр <команда> представляет собой следующую конструкцию:

<команда>::=

{CREATE DATABASE | CREATE TABLE |

CREATE VIEW | CREATE DEFAULT |

CREATE RULE | CREATE PROCEDURE

| BACKUP DATABASE |

BACKUP LOG | ALL }

Сонымен, ДҚ-ды, кестені, көрсетімді, үнсіздік, ереже, сақтаулы процедура, ДҚ-дың резервті көшірмесі және транзакция журналы құру құқығын ұсынуға болады немесе алдыңғы жазылған құқықтарды бірден ұсынуға болады.

Анық емес құқықтар

Кейбір әрекеттердің орындалуы анық рұқсатты қажет етпейді және үнсіздік бойынша рұқсат етілген. Бұл әрекеттер тек сервер рөлдерінің мүшелерімен немесе ДҚ обьекттері иелерімен орындала алады.

Анық емес құқықтар қолданушыға тікелей ұсынылмайды, ол тек оны нақты жағдайларда ғана алады. Мысалы, қолданушы егер өзі обьектті құрса немесе басқа біреу оған өз обьектісіне иелік етуді ұсынса ғана қолданушы ДҚ обьектісінің иесі бола алады. Мұндай жағдайда обьект иесі автоматты түрде обьектпен орындалатын кез-келген әрекетті орындауға сонымен қатар обьектке рұқсатты басқа қолданушыға беруге автоматты түрде құқығы болады. Бұл құқықтар ешқандай жерде көрсетілмейді, кез-келген әрекеттерді орындауға тек обьектті иелену фактысы мүмкіндік береді.

Рұқсатқа тыйым салу

SQL Server-дің қауіпсіздік жүйесі иерархиялық құрылымды қамтиды сондықтан да ДҚ рөлі есептік жазбалармен Windows NT топтарын, SQL Server рөлдерін және қолданушыларын қамтиды. Қолданушы өз кезегінде бірнеше рөлге қатыса алады және әртүрлі рөлдерге әртүрлі рұқсат құқығын бір уақытта қамтуы мүмкін. Қолданушы тұрған рөлдердің біреуі мәліметтерге қатынауға рұқсаты болса ол автоматты түрде аналогты құқықтарға ие болады. Сонымен қатар егер қажет болса қолданушыға мәліметтерге немесе командаларға рұқсатты тыйым салуға болады, онда иерархияның кез-келген деңгейінде алынған рұқсаттың барлығы нөлденеді. Бұл жағдайда рұқсат жоғары деңгейлерде ұсынылған рұқсаттарға тәуелсіз түрде тыйым салулы күйде қалады.

ДҚ-дың тыйым салынған рұқсаты үшін келесі команда қолданылады:

<рұқсатқа тыйым салу>::=

DENY {ALL [PRIVILEGES]| | <артықшылық>

[,...n]}

{ [(баған аты [,...n])]

ON { кесте аты |

Көрсетім аты}

| ON {кесте аты | көрсетім аты }

[баған аты [,...n])]

| ON {сақтау процедурасының аты |

Сыртқы процедура аты}}

TO {қолданушы аты | топ аты |

Рөл аты}

[,...n]

[CASCADE ]

CASCADE параметрі нақты қолданушының құқықтарын шақыруға мүмкіндік беріп қоймайды сонымен қатар барлық ұқсас құқықтарды ұсынған қолданушыларды да шақырады.

SQL командаларының орындалуын аяқтау үшін төмендегі операторлар қолданылады:

<орындалуға тыйым салу>::=

DENY {ALL | <команда>[,...n]}

TO {қолданушы аты | топ аты |

Рөл аты} [,...n]

Рұқсаттың анық емес ауытқуы

Анық емес ауытқудың рұқсатқа тыйым салудан өзгешелігі ол тек анықталған деңгейде ғана әрекет етеді. Егер қолданушыға анықталған деңгейде рұқсат анық емес ауытқыса, ол көру құқығына ие рөлдегі мүше арқылы иерарияның басқа деңгейінде ала алады. Үнсіздік бойынша мәліметтерге қолданушы рұқсаты анық емес ауытқиды. ДҚ обьектілеріне рұқсаттың анық емес ауытқуы үшін төмендегі команда қолданылады:

<рұқсаттың анық емес ауытқуы>::=

REVOKE [GRANT OPTION FOR]

{ALL [ PRIVILEGES]| | <артықшылық>

[,...n]}

{ [(баған аты [,...n])] ON

{ кесте аты | көрсетім аты}

| ON {кесте аты |

Көрсетім аты }

[баған аты [,...n])]

| ON {сақталған процедура аты |

Сыртқы процедура аты}}

TO | FROM {қолданушы аты |

Топ аты |

Рөл аты}[,...n]

[CASCADE ]

[AS {топ аты | рөл аты }]

SQL командаларының рұқсаттың анық емес ауытқуының орындалуы үшін келесі командалар орындалады:

<рұқсаттың анық емес ауытқуы>::=

REVOKE {ALL | <команда>[,...n]}

FROM {қолданушы аты | топ аты |

Рөл аты}[,...n]

Параметрлер мәні GRANT және DENY командаларының параметрлерінің мәнімен ұқсас. GRANT OPTION FOR параметрі GRANT командасының WITH GRANT OPTION параметрімен беру құқықты кері шақыру қажет болған жағдайда қолданылады. Қолданушы обьектке рұқсатты сақтайды, бірақ бұл рұқсатты басқа қолданушыларға ұсыну мүмкіндігінен айырылады.

Рұқсаттың шиеленісуі

Рөлдерге немесе топқа ұсынылатын рұқсаттар олардың мүшелерімен ие болады. Қолданушыға бір рөлдің мүшелігі арқылы рұқсат ұсынылуы мүмкін, басқа деңгей рөлі обьектпен әрекетке тыйым салынуы мүмкін. Мұндай жағдайда рұқсат шиеленісуі пайда болады.

SQL Server рұқсатының шиеленісуін шешу кезінде SQL Server келесі принциппен басқарылады: рұқсатты ұсынуды шешу ең аз приоритетке ие, ал рұқсатқа тыйым салу-ең жоғары приоритетке ие. Бұл мәліметтерге рұқсат қауіпсіздік жүйесінің кез-келген басқа иерархия деңгейінде рұқсаттың тыйым салынуының жоқ болуы тек оның анық ұсыныстарында қабылдана алады. Егер рұқсат анық ұсынылмаса, қолданушы мәліметтермен жұмыс жасай алмайды.

17.1 мысалы. Жаңа ДҚ,барлық құқықтарды ұсына отырып бұл ДҚ-на жаңа қолданушыны құру.

--администратор етіп жаңа CREATE DATABASE basa_user ДҚ құру

-- UserA атымен және ‘123’ құпия сөзімен жаңа қолданушыны құру

-- UserA қолданушысына үнсіздік бойынша ДҚ болып basa_user sp_addlogin 'UserA','123','basa_user' ДҚ тағайындалады

-- basa_user USE basa_user ДҚ-на өту

-- ағымдағы (basa_user) ДҚ-на userA sp_adduser 'UserA' атымен қолданушыны қосу

-- userA қолданушысына basa_user ДҚ-да GRANT ALL TO UserA барлық құқықтарын ұсыну

17.1 жаңа ДҚ, бұл ДҚ-ға жаңа қолданушы құру және оған барлық құқықтарды ұсыну

17,2 мысалы. Рөлдерді қолдану

stud рөлін құрамыз және бұл рөлге user1 және user2 екі қолданушыны қосамыз:

sp_addrole 'stud'

sp_addrolemember 'stud','user1'

sp_addrolemember 'stud','user2'

stud рөліне және user2 қолданушысына құқықтарын ұсынамыз:

GRANT SELECT, INSERT ON Тауар TO stud

GRANT SELECT, INSERT ON Тауар TO user2

Бұл командаларды орындағаннан кейін user1 және user2 қолданушылары таңдау командаларын орындап және Тауар кестесіне жазба қоса алады.

Stud рөлі үшін тауар кестесіне қоюды орындау құқығын тоқтата тұрамыз:

REVOKE INSERT ON Тауар TO stud

Алдыңғы команданы орындағаннан кейін user1 қолданушысы жазбаны қою құқығынан айырылады, ал user2 қою құқығы оған анық берілгендіктен бұл құқықты сақтайды.

Команданы орындаймыз:

DENY INSERT ON Тауар TO stud.

Бұл команданы орындағаннан кейін екі қолданушыда Тауар кестесіне қою құқығынан айырылады.

SQL және қолданбалы программалар

SQL тілін интерактивті режимде де және оның операторларын жоғары деңгейлі процедуралық тілдерде жазылған бағдарламаға еңгізуге болады. SQL-операторлардың интерактивті қолданылуының мысалы ретінде MS SQL Server ортасындағы Query Analyzer терезесі болып табылады. SQL тілінің қолданбалы программаларда қолданылуы практикада екі жолмен нақтыланған:

  1. Орнатылған SQL-операторлар. Жеке SQL-операторлар бағдарламаның мәтініне тікелей енеді және базалық тілдің операторларымен араласады. Бұл қатынас ДҚ-на қарайтын бағдарламаларды құруға мүмкіндік береді. Арнайы бағдарламалар-алдыңғы-компиляторлар бастапқы мәтінді SQL-операторларын сәйкес СУБД бағдарламаларымен өңдейді, кейін ол құрастырылады және қарапайым жолмен жиналады.

  2. Бағдарлаудың қолданбалы интерфейсін қолдану(API). Альтернативті вариант бағдарламалаушыға олар жасаған бағдарлама бойынша функциялардың стандартты жиынын ұсынады. API нақты варианты орнатулы программаларды қосқан кезде орындалатын функционалды мүмкіндіктер жиынтығын ұсынады, бірақ бұл кезде бастапқы мәтінннің алдын-ала құрастыру қажеттілігі қолға алынады. Сонымен қатар кейбір құрастырушылар бүл жағдайда түсінікті интерфейс қолданылатынын және құрастырылған бағдарламалық мәтін оны тіркеу түсінігінде ыңғайлы болып саналатындығын айтады.

Екі жолда операторларды статикалық SQL ретінде сонымен қатар динамикалық SQL ретінде қолдануды үсынады.

Статикалық SQL операторларына келетін болсақ бір қайтара жазғаннан кейін басқа өзгертуді қажет етпейді. Олар ұзақ уақыт қолданылуға арналған файлдарда және ДҚ-дың сақтау процедурасы тұһүрінде сақталуы мүмкін, бірақ бағдарламалаушылар оларға динамикалық SQL ұсынатын иілгіштікті ала алмайды. Ақырғы қолданушыға қол жетімді сұраныстардың үлкен көлеміне қарамастан бұл сұраныстардың ешқайсысы оның ағымдағы қажеттіліктерін қанағаттандыра алмайды.

Динамикалық SQL бағдарламалаушыға немесе ақырғы қолданушыға қосымшаның орындалу уақытында операторларды құруға және бұл операторларды орындағаннан кейін шығарылға мәліметтерді айнымалы бағдарламаларға орналастырады және оларды ДҚ-ға беру мүмкіндігін береді.

Динамикалық SQL нақты жағдайда туындаған SQL операторының алдын-ала ойластырылмаған сұраныстарының құралдық тәсілдермен жиі қолданылады. SQL операторының орнатылуынан кейін қолданушы тұтынуымен сәйкесінше ол синтаксистік қателіктерді тексеру үшін және оның артықшылықтарын орындау үшін ДҚ серверіне жылжиды.

SQL операторларының орындалуы үшін бағдарламалаудың қолданбалы интерфейсінің API қолданылуын қарастырамыз.

Қолданбалы API бағдарлаушыға ДҚ-на қатынаудың әртүрлі типтерін ұсынатын кітапханалық функциялар жиынтығын қамтиды, нақтылап айтқанда: SQL операторларының қосылуы, орындалуы, мәліметтердің нәтижелік жиынтықтарынан мәліметтердің жеке жолдарын таңдау және т.б

Әр мақсатты СУБД-ға қолданушы қосымшаларының жеке версияларын ойластырмау үшін Microsoft

Open Database Connectivity ODBC атымен стандарт ойлап тапты. Open Database Connectivity ODBC технологиясы SQL ДҚ-ның әртүрлі базаларына қатынайтын жалғыз интерфейстің қолданылуын қарастырады. SQL тілі рұқсаттың негізгі стандартты тәсілі ретінде қарастырылады. Бұл интерфейс нәтижесінде екі қосымшада бағдарламалық мәтінге өзгерту енгізусіз мақсатты ДҚ-на мәліметтерге рұқсат әмбебаптылықтың жоғары деңгейімен қамтамасыз етеді. Сол себепті құрастырушылар құру үшін және тұтынушы-сервер архитектурасының қосымшасын тарату үшін құралдармен қамтамасыз етілді. Кез-келген мақсатты ДҚ-мен қосымшаны байланыстыру үшін сәйкес ODBC-драйвермен байланыстыру керек.

Қазіргі кезде ODBC технологиясы кәсіптік стандартының мағынасын алды. Оның негізгі танымалдылығының себебі құрастырушыларға келесі артықшылықтарды ұсынатын оған тән майысқақтығы:

Қосымшалар қандайда бір ДҚ-мен қолданбалы API арқылы байланысқан

• SQL-операторлар анық қосымшаның алғашқы мәтініне ене алады немесе бағдарламаның орындалу барысында динамикалық құрыла алады

Қосымшалар қолданылатын мәліметтерді жіберу хаттамаларының ерекшеліктерін ескермеуі мүмкін

Мәліметтер нақты қосымшаға ыңғайлы пішімде жіберіледі және жеткізіледі

ODBC қолдау құралы X/Open и CLI (Call Level Interface) стандарттарының сұрау есебімен құрастырылып шығарылған

Қазіргі уақытта ең танымал ДҚ-ның әртүрлі типтері үшін ODBC драйверлері қолданылады.

приложения больше не связаны с прикладным API какой-то одной СУБД;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]