SQL боюнча пайдалануучулар менен милдетин үчүн мүмкүндүк башкаруу

Коопсуздук үчүн абдан маанилүү базасы администраторлору уруксатсыз сырттан жана алардын ыйгарым укуктарын ашыра аракет инсайдерлердин көздөрүнөн сырт болгон маанилүү бизнес-маалыматтарды өз айылдардан коргоого аракет кылышат. Бардык мамиледеги Берилиштер базасын башкаруу системи бул коркунучтарды азайтуу үчүн иштелип чыккан ички коопсуздук механизмдердин кандайдыр бир берет. Алар тарабынан сунушталган жөнөкөй Сырсөз менен коргоо тартып Microsoft Access Oracle жана сыяктуу өнүккөн мамиледеги базалары тарабынан колдоого алынган татаал колдонуучу / ролу структурасына Microsoft SQL Server. Бул макалада ишке ашырууга бардык маалымат базаларына жалпы коопсуздук механизмдери багытталган структураланган талптар тили (же SQL ). Экөөбүз маалымат жетүүнү башкарууну бекемдөө жана маалыматтардын сакталышын камсыз кылуу аркылуу жүрө баштайт.

Колдонуучулар

Server негизделген базалары бардык компьютер иштеп системаларында колдонулуучу окшош колдонуучу түшүнүгүн колдойт. Сиз Microsoft Windows NT жана Windows 2000-жылы табылган колдонуучу / топ ирээти менен тааныш болсо, SQL Server жана Oracle тарабынан колдоого колдонуучу / ролу топторду абдан окшош экенин таба аласыз.

Бул жогорку сиз маалымат базасын мүмкүнчүлүк болот ар бир адамдын жеке маалымат базасы колдонуучу эсептерин түзүү сунушталат. Бул колдонуучулардын ортосундагы эсеп менен бөлүшүү үчүн техникалык жактан мүмкүн же жөн гана маалыматтар базасын пайдалануу керек пайдалануучунун ар бир түрү үчүн бир колдонуучу каттоо эсебин колдонушу мүмкүн, бирок мен катуу эки себеп менен бул тажрыйбаны тоскоолдук. Биринчиден, бул колдонуучу сиздин базасына өзгөртүүлөр жеке болсо, жоопкерчиликти-(анын өзүн $ 5,000 байланыштуу берип, мындай жол) жок кылат, сен аудитордук журналдарын пайдалануу жолу менен кайрадан белгилүү бир адамга, аны көзөмөлдөөгө мүмкүн эмес болуп калат. Мындан тышкары, белгилүү бир колдонуучу сиздин уюмду жана маалыматтар базасын өзүнүн же анын мүмкүнчүлүгүн алып келсе, анда бардык колдонуучулар таяна Сырсөздү өзгөртүүгө мажбур болот.

Колдонуучунун каттоо эсептерин түзүү ыкмалары сахнага сахнадан өзгөрүп турат жана так тартиби үчүн DBMS тиешелүү документтерди изилдөөгө болот. Microsoft SQL Server колдонуучулар sp_adduser сакталган тартипте пайдалануу зарыл. Oracle маалымат базасы администраторлор USER буйрук пайдалуу ТҮЗҮҮ болот. Ошондой эле, башка текшерүү схемаларды иликтеп келет. Мисалы, Microsoft SQL Server Windows NT комплекстүү коопсуздук пайдаланууну колдойт. Бул программага ылайык, колдонуучулар Windows NT Колдонуучунун каттоо боюнча маалымат базасына аныкталган жана маалыматтар базасын пайдалануу үчүн кошумча колдонуучу ID'син жана сырсөз талап кылынбайт. Бул ыкма тармак башкаруу кызматкерлерине эсеп башкаруу ал жүгүн жылдырат, анткени базасы жетекчилери арасында абдан популярдуу болуп, ал бир белги боюнча колдонуучуга азайтуу камсыз кылат.

ролдору

Эгер колдонуучулардын аз сандагы менен айлана-чөйрөгө ушундай болсо, анда, балким, колдонуучу каттоо эсептерин түзүү жана алар менен түздөн-түз уруксат берүү өз муктаждыктары үчүн жетиштүү экенин таба аласыз. Бирок, сиз пайдалануучулардын көп санда болсо, анда мүмкүн сактоо эсеп жана тийиштүү уруксат оордугунан абдан кыйын болот. Бул жүгүн азайтуу үчүн, өз ара мамилеге базасы ролдору түшүнүгүн колдойт. Базасы ролдору Windows NT топтору сыяктуу эле иштейт. Колдонуучунун каттоо ролу (тар) жүктөлгөн жана уруксаттар андан кийин бүт жеке Колдонуучунун каттоо эмес, ролу жүктөлгөн. Мисалы, биз бир DBA ролун жараткан, андан кийин бул ролу үчүн башкаруу кадрларын колдонуучу эсеп жазууларды колго кошууга мүмкүн. Биз бул багытта ишти баштадык, биз жөн гана ролу уруксат берүү менен баары (жана келечектеги) администраторлору үчүн атайын уруксат алат. Дагы бир жолу, ролдорду түзүү тартиби сахнага сахнадан ар кандай болот. MS SQL Server администраторлору Oracle DBAs РОЛУ ТҮЗҮҮ синтаксисин пайдалануу керек, ал эми sp_addrole сакталган тартибин иликтөө керек.

берүү Уруксаттарды

Азыр биз базасына колдонуучуларды коштук, бул уруксат кошуп, коопсуздукту күчөтүү баштоого убакыт жетти. Биздин биринчи кадам биздин колдонуучулардын тиешелүү базасы уруксат берүүгө болот. Биз SQL Гранттык отчетто пайдалануу аркылуу ишке аласыз.

Бул арыздын синтаксиси мындай:

ГРАНТ <уруксаттар>
[ON <стол>]
TO <колдонуучу / ролу>
[Гранттын мүмкүнчүлүгү бар]

Эми, бул билдирүү сызык менен сызыгында карап көрөлү. Биринчи кезекте, ГРАНТ <уруксаттарды>, биз берүү болгон конкреттүү стол уруксат көрсөтүүгө мүмкүнчүлүк берет. Бул эки стол-деңгээл уруксаттар (мисалы, тандап, ЖАЗУУ, өзгөртүү жана жок кылуу сыяктуу) же маалыматтар базасына уруксат (мисалы, маалымат базасы, ошондой эле гранттык өзгөртүүгө, жадыбалын түзүү сыяктуу) болушу мүмкүн. Дагы бир уруксат бир Гранттык билдирүүсүндө берилиши мүмкүн, бирок, стол-деңгээл уруксаттарды жана маалыматтар базасы даражалуу уруксаттар бир билдирүүсүндө биригиши мүмкүн эмес.

экинчиси, ON <стол>, стол-деңгээл уруксат жабыр тарткан дасторкон көрсөтүү үчүн колдонулат. Бул линия биз базасы даражалуу уруксат берүү, эгер жок. Үчүнчүдөн, уруксат берген жатат колдонуучуну же ролун аныктайт.

Акыр-аягы, төртүнчү сап, Гранттын мүмкүнчүлүгү менен, милдеттүү болуп саналат. Бул линия билдирүүсүндө жазылган болсо, жабыр тарткан колдонуучу ошондой эле башка колдонуучуларга ушундай уруксат берүүгө жол берилет. МЕНЕН ГРАНТ OPTION уруксаттарын ролу жүктөлгөн кийин көрсөтүлүшү мүмкүн эмес экенин белгилешет.

мисалы,

Бир нече мисал карап көрөлү. Биринчи жагдайда, биз жакында эле кардар жазууларды кошуу жана аларды сактоодо турган 42 берилиштерди киргизүү операторлорунун тобун жалдап жатышат. Алар, кардарлар столдун маалыматты бул маалыматты өзгөртүп, дасторконго үчүн жаңы жазууларды кошуу үчүн жөндөмдүү болуу керек. Алар толугу менен маалыматтар базасын бир рекорд жок кыла болууга тийиш эмес. Биринчиден, ар бир оператор үчүн колдонуучу эсептерин түзүү жана алардын баары бир жаңы ролу кошуу керек, DataEntry. Андан ары, биз аларга тийиштүү уруксаттарды берүү үчүн төмөнкү SQL сөздөрдү колдонуу керек:

ГРАНТ SELECT, ЖАЗУУ, улантат
Клиенттердин
TO DataEntry

Ал эми бул ал үчүн бар болуп эсептелет! Эми биз базасы даражалуу уруксат берүү жаткан ишин карап көрөлү. Биз DBA ролун мүчөлөрү биздин базасына жаңы үстөлдөрүн кошууга уруксат берүү үчүн келет. Андан тышкары, биз аларды ушул үчүн башка пайдалануучулар уруксат бере албай келет. Бул жерде SQL билдирүү мындай:

ГРАНТ жадыбалын түзүү
TO DBA
ГРАНТТЫК мүмкүнчүлүгү менен

биз DBAs башка колдонуучуларга уруксат берүү мүмкүн экенин камсыз кылуу менен Гранттык OPTION линиясын кошкон билдирүү.

салынууда Уруксаттарды

биз уруксат берген кийин, көп учурда бир аз убактан кийин, аларды кайра кайтарып алуу үчүн зарыл болгон далилдейт. Бактыга жараша, SQL мурда берилген уруксат алып кайтарып буйругу менен камсыз кылат. Бул жерде синтаксиси мындай:

[ГРАНТТЫК OPTION] жокко <уруксат>
ON <стол>
FROM <колдонуучу / ролу>

Сиз бул буйругу синтаксиси Гранттык буйрук окшош экенин көрө аласыз. гана айырмасы бул Гранттык OPTION буйругу аягында эмес, жокко буйрук сабында көрсөтүлгөн МЕНЕН болуп саналат. Мисалы, биз Мариямдын мурда кардарлар базасынын каттоодон алып салуу үчүн уруксат кайтарып келет дейли. Биз төмөнкү команданы колдонобуз:

жокко DELETE
Клиенттердин
Мариямды

Ал эми бул ал үчүн бар болуп эсептелет! буйрукту ЖОК-эскерте кетсек болот Microsoft SQL Server тарабынан колдоого алынган бир кошумча механизми бар. Бул буйрук так алар Эгерде учурдагы же келечектеги ролу мүчө болушу мүмкүн пайдалануучу менен уруксат жокко чыгаруу үчүн пайдаланылышы мүмкүн. Бул жерде синтаксиси мындай:

БАШ ТАРТУУ <уруксаттар>
ON <стол>
TO <колдонуучу / ролу

мисалы,

мурунку Мисалы кайтып, анын Мариям ошондой эле кардарлар столдун кирүүгө мүмкүнчүлүгү бар болчу Жетекчилерге ролу мүчөсү болгон деп ойлошот экен. Өткөн кайтарып билдирүү столго анын мүмкүнчүлүгүн жокко чыгаруу үчүн жетиштүү болмок эмес. Бул анын колдонуучу багытталган гранттык отчету аркылуу ага уруксат жок, бирок уруксат жетекчилери ролу мүчөсү аркылуу алган таасир болмок эмес. Бирок, биз арыз ЖОК колдонууга эгерде уруксат анын мурасын бөгөт болот. Бул буйрук келди:

ЖОК КЫЛУУ
Клиенттердин
Мариям

буйрук олуттуу базасына кирүү башкаруу жылы "терс уруксат" жаратат ЖОК. биз кийинчерээк Мариямды кардарлар үстөлүнөн түшкөн саптарды алып салууга уруксат берүү жөнүндө чечим кабыл алса, биз жөн гана Гранттык буйругун колдонуу мүмкүн эмес. Бул буйрук дароо ЖОК бар болчу тарабынан жокко болот. Тескерисинче, биз адегенде төмөнкүдөй терс уруксат жазууну алып салуу жана кайтарып алуу буйругун пайдаланууга болот:

жокко DELETE
Клиенттердин
Мариямды

Бул буйрук так жакшы уруксат алып салуу үчүн колдонулган бир эле экенин көрө аласыз. БАШ ТАРТУУ жана Гранттык ушундай мода * mdash да ишин буйрук унутпа, анткени алар эки базасы мүмкүндүк алууну башкаруу механизминин уруксаттарды (оң же терс) түзөт. Жоюу буйрук көрсөтүлгөн колдонуучу үчүн бардык оң жана терс уруксат жок. Бул буйрук берилген кийин, Мариям ошол уруксат ээ ролун мүчөсү болсо, үстөлдүн саптарды жок кыла алат. Же болбосо, бир Гранттык буйрук анын эсебине түздөн-түз ЖОК уруксат камсыз кылуу үчүн берилиши мүмкүн.

Ушул берененин бою сиз Standard талптар тили колдоого мүмкүндүк алууну башкаруу механизмдери жөнүндө жакшы келишимге үйрөндүм. Бул киргизүү жакшы башталыш чекити менен камсыз кылуу керек эле, бирок, мен сиздин тармагы тарабынан колдоого күчөтүлгөн коопсуздук чараларын билүү үчүн DBMS документтерди маалымат сунуштайбыз. Сиз көп экенин таба аласыз базалары , мисалы, белгилүү бир колонналарга уруксат берүү сыяктуу өркүндөтүлгөн мүмкүндүк алууну башкаруу механизмдерин, колдойбуз.