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

MS SQL Server ортасында қолданушылармен басқару

MS SQL Server ортасында қолданушыларды құру сұрағын қарастырайық.

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

SQL Server жүйесінде екідеңгейлік деректерге рұқсат шектеуі орнатылған. Бірінші деңгейде сервердің өзіне қосылуға мүмкіндік беретін бірақ Дерекқорға автоматты рұқсат бермейтін қолданушының есептік жазбасын (login) құру міндетті. Екінші деңгейде SQL Server-дің әрбір ДҚ-на есептік жазба негізінде қолданушы жазбасын құру міндетті. Қолданушыға ДҚ қолданушысы(user) ретінде құқығы негізінде оның тіркеу аты (login) сәйкес ДҚ-на рұқсат алады. Әртүрлі ДҚ-да бір қолданушының login-ы әртүрлі рұқсатпен бірдей немесе әртүрлі user аттарын қамтуы мүмкін. Басқаша айтқанда қолданушының есептік жазбасының көмегімен әрбір ДҚ-ға жеке қатынау деңгейін анықтайтын SQL Server-ге қосылу жүзеге асады.

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

Сервер деңгейінде қауіпсіздік жүйесі келесі түсініктермен анықталады:

  • Аутентификация

  • Есептік жазба

  • Орнатылған сервер рөлдері

ДҚ деңгейінде келесі түсініктер қолданылады:

  • ДҚ қолданушысы

  • ДҚ-ның белгіленген рөлдері

  • ДҚ-ның қолданушы рөлі

Аутентификация режимдері

SQL Server қолданушы аутентификациясының екі режимін ұсынады:

Windows NT/2000 құралдарымен аутентификация режимі

Аутентификацияның аралас режимі (Windows NT Authentication and SQL Server Authentication)

Қауіпсіздік жүйесінің басқарылуы

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

  1. ДҚ-да қолданушының есептік жазбасын құру керек және оған құпиясөзбен үнсіздік бойынша тағайындалған ДҚ аты(sp_addlogin процедурасы ).

  2. Бұл қолданушыны барлық қажетті ДҚ-на қосу керек (процедура sp_adduser ).

  3. Оған әр ДҚ-да сәйкес артықшылықтарын беру керек (команда GRANT ).

Жаңа есептік жазбаны құру желілік сақтау процедурасының көмегімен құрылуы мүмкін:

sp_addlogin

[@login=] 'есептік жазба'

[, [@password=] 'құпия сөз']

[, [@defdb=] 'үнсіздік бойынша ДҚ']

Аутентификация аяқталған соң және есептік жазба идентификаторын (login ID) алғаннан кейін қолданушы тіркелген болып саналады, және оған серверге рұқсат тағайындалады. Әр ДҚ-на, ол рұқсат алаын обьекттерге, қолданушының есептік жазбасы (login ) қолданушымен (user) ұқсастырылады:

sp_adduser

[@loginame=] 'есептік жазба'

[, [@name_in_db=] 'қолданушы аты']

[, [@grpname=] 'рөл аты']

Windows NT-ның есептік жазбасын қолданушы атында көрсетуге сақтау процедурасы көмектеседі:

sp_grantdbaccess

[@login=] ‘есептік жазба’

[, [@name_in_db=]‘қолданушы аты’]

ДҚ-да обьектіні(кесте, сақтаулы процедураны, көрсетілім) құратын қолданушы оның иесі болып тағайындалады. Обьект иесі (database object owner dbo) ол құрған обьектісіне барлық құқығына ие. Қолданушы обьектіні құру үшін (dbo) ДҚ иесі оған сәйкес құқықты ұсынады. Құрылған обьектінің толық аты оны құрған қолданушының атын қосады.

Обьект иесі арнайы құпиясөз немесе ерекше рұқсат құқығына ие емес. Ол анық емес толық рұқсатқа ие бірақ бөтен қолданушыларғада анық рұқсатты ұсынуы керек. SQL Server ие болу құқығын бір қолданушыдан екіншісіне жіберуге төмендегі процедура көмегімен мүмкіндік береді:

[@objname=] ‘объект аты’

[@newowner=] ‘иесінің аты’

Рөл бірдей функцияларды орындайтын қолданушыларды бір топқа біріктіруге мүмкіндік береді. SQL Server-де екі түрлі стандартты рөлдер анықталған: сервер деңгейінде және ДҚ деңгейінде. SQL Server-ді орнатқанда сервердің бекітілген рөлдері құрылады(мысалы SQL-серверде sysadmin кез-келген функцияны орындау құқығы) және ДҚ-ның бекітілген рөлдері (мысалы db_owner ДҚ-на толық рұқсат құқығымен және db_accessadmin қолданушыларды қосу және өшіру құқығымен). ДҚ-ның бекітілген рөлдері арасында ДҚ-на рұқсаты бар барлық қолданушылар мүшесі болып табылатын public рөлі.

SQL Server (login)-нің кез келген есептік жазбасын қосуға болады немесе Windows NT есептік жазбасын сервердің кез-келген рөліне.

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

ДҚ рөлдеріне SQL Server қолданушыларын, SQL Server рөлдерін, Windows NT қолданушыларын қосуға болады.

Рөлге қарым қатынастың әртүрлі әрекеті арнайы процедуралар көмегімен жүзеге асады:

Жаңа рөлді құру:

  • sp_addrole

  • [@rolename=] 'рөл аты'

[, [@ownername=] 'иесінің аты']

  • Рөлге қолданушыны қосу:

  • sp_addrolemember

  • [@rolename=] 'рөл аты',

[@membername=] 'қолданушы аты'

  • Рөлден қолданушыны өшіру:

  • sp_droprolemember

  • [@rolename=] 'рөл аты',

[@membername=] 'қолданушы аты'

  • Рөлді өшіру:

  • sp_droprole

[@rolename=] 'рөл аты'

Берілгендерге рұқсатты басқару

Тілдің стандартындағы артықшылықтарды анықтау

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

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

SQL ортасында құрылған әр обьектінің бастапқыдан берілген обьектінің бар екенін білетін және онымен кез-келген операциялар орындай алатын жалғыз тұлға, өзінің иесі болады.

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

  • SELECT – кестеден мәліметтерді таңдау құқығы;

  • INSERT – кестеге жаңа жолдарды қосу құқығы;

  • UPDATE – кестедегі мағлұматтарды өзгерту құқығы;

  • DELETE – кестеден жолдарды өшіру құқығы;

  • REFERENCES –мәліметтердің толықтығын қолдайтын көрсетілген кестедегі бағандарға аудару құқығы;

  • USAGE –домендерді қолдану, символдарды теру және тексеру құқығы.

INSERT және UPDATE артықшылықтары кестенің тек жеке бағандарымен шектеле алады, бұл жағдайда қолданушыға тек көрсетілген бағандардан ғана мәндерді өзгертуге рұқсат беріледі. REFERENCES артықшылығының аналогты бейнесі оның аттарын мәліметтердің толықтылығын сақтау үшін қолданылатын кестенің тек жеке бағандарына таратылады. Мысалы басқа кестелердің анықтамаларына кіретін CHECK және FOREIGN KEY сөйлемдерінде.

Қолданушы CREATE TABLE операторының көмегімен жаңа кестені құрған кезде ол автоматты түрде оның иесі болып тағайындалады және басқа қолданушыларда жоқ, оған катынаудың артықшылықтарының толық жиынын алады. Оларды рұқсатпен қамтамасыз ету үшін иесі GRANT операторы қолданылатын нақты түрде қажетті құқықтарды ұсынуы керек.

CREATE VIEW операторының көмегімен көрсетім құра отырып, қолданушы автоматты түрде осы көрсетімнің иесі болып тағайындалады және құқықтардығ толық жиынына ие болады. Көрсетімді құру үшін қолданушыға оған кіретін барлық кестелерге SELECT артықшылығын және барлық бағанға осы көрсетімнің анықтамасында айтылатын REFERENCES артықшылығын қолдануы керек.

Insert, update және delete артықшылықтарын құрылған көрсетімде қолданушы егер сәйкес артықшылықтарын кестелер көрсетілімінде қолданылатын болса ала алады.

Қолданушыларға артықшылықтардың ұсынылуы

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

<артықшылықтарды ұсыну>::=

GRANT {<артықшылық>[,...n] |

ALL PRIVILEGES}

ON обьект аты

TO {<қолданушылар идентификаторы>

[,...n]| PUBLIC}

[ WITH GRANT OPTION]

<артықшылық> параметрі ұсынады:

<артықшылық>::=

{SELECT | DELETE | INSERT

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

| UPDATE [(баған аты[,...n])]}

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

USAGE }

GRANT операторындағы жеңілдетуді ойлағандардан кейін көрсетілген қолданушыларға барлық артықшылықтарды оларды санау қажеттілігі үшін ALL PRIVILEGES кілттік сөзін көрсетуге болады. Сонымен қатар бұл операторда көрсетілген типке рұқсатты білдіретін тек қана бар қолданушыларға ғана емес сонымен қатар ДҚ-да соңынан анықталатын қолданушыларға PUBLIC кілттік сөзі көрсетілуі мүмкін.

Обьект аты параметрі ДҚ кестесінің аты ретінде, көрсетім, домен, символдарды теру, тексеру ретінде қолданылуы мүмкін.

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

Қолданушығы берілген артықшылықтарды қайтару

SQL тілінде GRANT операторының қолданушысымен ұсынылған артықшылықтарды қайтару үшін REVOKE операторы қолданылады. Бұл оператор көмегімен қолданушымен алдында алынған барлық немесе кейбір артықшылықтар қайтарыла алады. REVOKE операторы төмендегідей пішімді қамтиды:

<артықшылықты қайтару>::=

REVOKE[GRANT OPTION FOR]

{<артықшылық>[,...n]

| ALL PRIVILEGES}

ON обьект аты

FROM {<қолданушы идентификаторы>

[,...n]| PUBLIC}

[RESTRICT | CASCADE]

ALL PRIVILEGES кілттік сөзі оператордың еңгізген қолданушымен көрсетілген, қолданушыға барлық артықшылықтар қайтарылатынын білдіреді. GRANT OPTION FOR міндетті емес сөзі WITH GRANT OPTION сөзімен GRANT шығыс операторында барлық артықшылықтардың жіберілу мүмкіндігін қайтара алады.

Егер операторда RESTRICT кілттік сөзі көрсетілсе REVOKE командасының сәтті орындалуы егер операторда көрсетілген артықшылықтар басқа қолданушылардағы қалып қойған артықшылықтардың шығуына себепкер болмаса мүмкін. CASCADE парметрінің көмегімен басқа қолданушыларда қалып қоюы мүмкін барлық артықшылықтар өшіріледі.

Қалып қойған артықшылықтар деп өз уақытында GRANT OPTION параметрінің көмегімен көрсетілген қолданушыда сақталған артықшылықтар.

Артықшылықтар анықталған обьектілерді құру үшін керек болғандықтан, оны өшіру арқылы құқықтан айырылуы мүмкін. REVOKE операторын қолдану нәтижесінде тасталған обьекттер(мысалы артықшылықтар) пайда болуы мүмкін, құқық бір шартпен яғни, егер онда CASCADE құпия сөзі көрсетілмесе қайтарылады. Егер CASCADE құпия сөзі операторға қатысса, онда кез-келген REVOKE оператордың орындалуында тасталған обьекттер үшін автоматты түрде DROP операторы беріледі.

Көрсетілген қолданушыға басқа қолданушылармен берілген артықшылықтар REVOKE операторының көмегімен қозғалады. Егер басқа қолданушы берілген қолданушыға өшірілген артықшылықты ұсынса сәйкес кестеге рұқсат құқығы көрсетілген қолданушыда сақталады. Мысалы А қолданушысы және Е қолданушысының Тауар кестесіне INSERT құқығы бар болсын. А қолданушысы В қолданушысына Тауар кестесіне INSERT артықшылығын ұсынады WITH GRANT OPTION нұсқауымен . В қолданушысы бұл артықшылықты С қолданушысына береді(2 этап). С қолданушысы оны Е қолданушысынан алды(3 этап). Кейін С қолданушысы аталған артықшылықты Д қолданушысына ұсынады(4-этап). А қолданушысы В қолданушысынан INSERT артықшылығын кайтарған кезде ол С қолданушысынан кайтарыла алмайды себебі ол оны ертеректе Е қолданушысынан алған. Егер Е қолданушысы берілген артықшылықты С қолданушысына ұсынбаса, онда В қолданушысының артықшылықтарын өшіру С және Д қолданушыларына артықшылықтарды каскадты өшіру нәтижесіндей болады.

MS SQL Server ортасында ДҚ обьекттеріне құқықтарды нақтылау.

MS SQL Server ортасындағы құқықтар категориясы

SQL Server-ге қосылғанда қолданушылардың барлық мүмкін әрекеттері олардың есептік жазбаларына берілген, олар тұрған топтар немесе рөлдер құқықтармен(артықшылықтармен, рұқсаттармен)анықталады.

Құқықтарды 3 категорияға бөлуге болады:

Обьекттерге рұқсат құқығы

Командаларды орындау құқығы

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

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