ГЛАВА 1
Технологии администрирования баз данных
1.3
Многопользовательский режим работы с базой данных
Сис­те­ма раз­гра­ниче­ния дос­ту­па и за­щита дан­ных на сер­ве­ре MS SQL Server ре­али­зова­на на нес­кольких уров­нях:
  • про­вер­ка пра­ва пользо­вате­ля ус­та­нав­ли­вать со­еди­нение с сер­ве­ром;
  • про­вер­ка пра­ва пользо­вате­ля осу­щест­влять дос­туп к кон­крет­ной БД;
  • про­вер­ка пра­ва пользо­вате­ля ма­нипу­лиро­вать объек­та­ми БД;
  • шиф­ро­вание тра­фика меж­ду кли­ен­том и сер­ве­ром.
SQL Server под­держи­ва­ет две мо­дели про­вер­ки пра­ва пользо­вате­ля ус­та­нав­ли­вать со­еди­нения с сер­ве­ром:
1) Windows only — ин­тегри­рован­ная мо­дель, при ко­торой ре­гис­тра­ция пользо­вате­ля про­из­во­дит­ся на ос­но­ве его те­куще­го до­мен­но­го иден­ти­фика­тора или иден­ти­фика­тора пользо­вате­ля компьюте­ра в слу­чае, ес­ли вход был осу­щест­влен не в до­мен, а на ло­кальный компьютер. Со­от­ветс­твен­но, при та­ком дос­ту­пе мо­гут ис­пользо­ваться только trusted-со­еди­нения;
2) SQL Server and Windows — сме­шан­ная мо­дель, ког­да до­пус­ка­ет­ся ис­пользо­вание вхо­да как на ос­но­ве иден­ти­фика­тора пользо­вате­ля Windows, так и на ос­но­ве ло­гина и па­роля, пе­реда­ва­емо­го не­пос­редс­твен­но SQL-сер­ве­ру.
Вы­бор кон­крет­ной мо­дели про­вер­ки прав пользо­вате­ля про­из­во­дит­ся на эта­пе ус­та­нов­ки и за­тем мо­жет быть из­ме­нен, нап­ри­мер, че­рез SQL Enterprise Manager.
Пос­ле то­го как со­еди­нение с сер­ве­ром ус­та­нов­ле­но, каж­до­му пользо­вате­лю, не­зави­симо от при­нятой мо­дели, ста­вит­ся в со­от­ветс­твие учет­ная за­пись (Login). Не сле­ду­ет пу­тать Login и имя учет­ной за­писи, ко­торое вво­дит­ся вмес­те с па­ролем при со­еди­нении с сер­ве­ром. То, что вво­дит­ся вмес­те с па­ролем, — сим­вольное имя учет­ной за­писи (Login name). Бо­лее уни­вер­сальным иден­ти­фика­тором учет­ной за­писи яв­ля­ет­ся SID (Securty Identifier). SID — это би­нар­ное зна­чение раз­ме­ром до 85 байт. В свою оче­редь, Login name — это сим­вольное имя, ко­торое ему со­пос­тавле­но.
На од­ном сер­ве­ре не мо­жет быть двух оди­нако­вых имен учет­ной за­писи. Од­на­ко ес­ли на раз­ных сер­ве­рах су­щес­тву­ют учет­ные за­писи с оди­нако­выми име­нами, то это не зна­чит, что им бу­дут со­пос­тавле­ны оди­нако­вые иден­ти­фика­торы SID. В свя­зи с этим час­то воз­ни­ка­ют проб­ле­мы при пе­рено­се БД с од­но­го сер­ве­ра на дру­гой. Лишь стан­дар­тные учет­ные за­писи име­ют фик­си­рован­ные (т. е. всег­да оди­нако­вые) иден­ти­фика­торы SID. Для всех ос­тальных учет­ных за­писей SID ге­нери­ру­ют­ся при соз­да­нии.
Хо­рошей прак­ти­кой при за­дании прав под­клю­чения яв­ля­ет­ся ис­пользо­вание Windows Authentication и объеди­нение пользо­вате­лей в груп­пы. Это поз­во­ля­ет эко­номить вре­мя при пе­реме­щении пользо­вате­ля из груп­пы в груп­пу и тон­ко нас­тра­ивать на­бор при­виле­гий каж­до­го кон­крет­но­го чле­на груп­пы. Кро­ме то­го, дан­ный прин­цип поз­во­ля­ет ис­пользо­вать весь на­бор пре­иму­ществ Windows-а­утен­ти­фика­ции, та­ких как тре­бова­ние к слож­ности па­роля, его из­ме­нение по про­шес­твии оп­ре­делен­но­го пе­ри­ода, вре­мя, в ко­торое пользо­ватель мо­жет вхо­дить в сис­те­му, и т. д.
Для сер­ве­ра су­щес­тву­ет нес­колько сер­верных ро­лей (табл. 1.1). На­бор сер­верных ро­лей фик­си­рован: нельзя ни до­бавить но­вые ро­ли, ни уда­лить су­щес­тву­ющие. Каж­дая из этих ро­лей име­ет свой на­бор прав для ра­боты с сер­ве­ром. В ро­ли мо­гут быть вклю­чены лю­бые учет­ные за­писи. Чле­ны лю­бой ро­ли так­же мо­гут до­бав­лять в свою роль дру­гие учет­ные за­писи.
Таблица 1.1. Список серверных ролей для MS SQL Server
В MS SQL Server су­щес­тву­ет спе­ци­альная учет­ная за­пись, ко­торая соз­да­ет­ся при ус­та­нов­ке: sa. Эта учет­ная за­пись ис­пользу­ет SQL Server-а­утен­ти­фика­цию и вклю­чена пос­ле ин­стал­ля­ции сер­ве­ра в сер­верную роль sysadmin.
Пользо­вате­ля sa ре­комен­ду­ет­ся уда­лять из со­об­ра­жений без­опас­ности (пре­дос­та­вив пред­ва­рительно ад­ми­нис­тра­тор­ские пра­ва ка­кому-ли­бо дру­гому пользо­вате­лю). Как ми­нимум, тре­бу­ет­ся, что­бы его па­роль был не пус­тым, ина­че бе­зопас­ность сер­ве­ра ока­жет­ся под уг­ро­зой.
Пе­речень всех сер­верных ро­лей мож­но пос­мотреть с по­мощью гра­фичес­ко­го ин­терфейса Enterprise Manager. Для это­го нуж­но от­крыть пап­ку Security, ус­та­новить кур­сор на пап­ке Server Roles, и тог­да в пра­вом ок­не по­явит­ся спи­сок сер­верных ро­лей с ука­зани­ем их прав (рис. 1.3).
Рис. 1.3. Стандартные серверные роли
Что­бы уви­деть в ка­кую сер­верную роль вхо­дит пользо­ватель с оп­ре­делен­ным име­нем вхо­да в SQL Server, нуж­но выб­рать ло­гин в спис­ке ло­гинов пап­ки Security-сер­ве­ра, щел­чком пра­вой кла­виши мы­ши выз­вать кон­текс­тное ме­ню, выб­рать в нем пункт Properties (Свойства) и пе­рейти на зак­ладку Server roles (рис. 1.4).
Рис. 1.4. Серверные роли конкретного пользователя
This site was made on Tilda — a website builder that helps to create a website without any code
Create a website