Безпека бази даних

Після отримання доступу до сервера користувач може отримати доступ до окремих баз даних Система безпеки баз даних відносно складна

Спочатку доступ до бази даних встановлюється або шляхом додавання бази даних користувачеві, або додавання користувача базі даних

Гостьові облікові записи

Будь-який користувач, який бажає отримати доступ до бази даних, але для якого в ній не створена обліковий запис, автоматично отримує привілеї гостя, якщо в базі даних існує обліковий запис guest (див рис 401)

При створенні бази даних обліковий запис guest автоматично не створюється – її потрібно додавати в базу даних вручну за допомогою програмного коду При цьому реєстраційну запис guest не обовязково визначати для сервера баз даних:

EXEC sp_adduser Guest

Будьте дуже обережні з використанням гостьовий облікового запису Незважаючи Увага на те що в деяких випадках зручніше відкривати доступ до бази користувачам без обовязкової їх реєстрації в системі безпеки бази даних, слід враховувати, що дозволи, надані користувачу з обліковою записом guest, застосовуються абсолютно до всіх користувачів

Користувач з обліковим записом guest повинен бути обовязково видалений з бази даних, як тільки в гостьовому доступі відпадає необхідність

Надання доступу до бази даних

Доступ користувачам до будь-якої бази даних повинен відкриватися в явному вигляді Так як ця схема являє собою відношення багато до багатьох, доступом до бази можна управляти як на рівні реєстраційних записів, так і на рівні баз даних

Якщо деякої облікового запису відкритий доступ до бази даних, то їй може бути призначена обліковий запис бази Якщо її імя збігається з імям реєстраційної записи сервера, то їй можна призначити інше імя – Воно буде служити чимось на зразок псевдоніма реєстраційної записи, який розпізнає база даних

Для надання доступу до бази даних на рівні реєстраційних записів у Object Explorer використовується сторінка User Mappping діалогового вікна Login Properties (рис 406)

Puc 406 Діалогове вікно Login Properties використовується для надання доступу до бази даних реєстраційного запису і для призначення їй ролей

Багато налаштування системи безпеки включають безлічі обєктів, На замітку таких як користувачі і бази даних, або ролі та дозволу обєктів Ці настройки можна встановити в різних місцях: в діалоговому вікні Login Permission, в ролі або на сторінці властивостей обєкта

Для надання доступу користувачам з боку бази даних використовуйте команду New User контекстного меню у вузлі Database ^ Security ^ Users У полі Login Name діалогового вікна Database User-New (Рис 407) введіть імя додається

реєстраційної запису Для пошуку реєстраційних записів використовується кнопка з трьома крапками У полі User Name вводиться імя користувача, під яким він буде відомий базі даних

Рис 407 Діалогове вікно Database User Properties використовується для додавання нових користувачів бази даних, а також для управління існуючими користувачами

Надання доступу в програмному коді

Для надання доступу користувачеві до бази даних використовується збережена процедура sp_grantdbaccess Ця процедура повинна бути викликана з бази даних, до якої користувачеві надається доступ Першим її аргументом виступає реєстраційна запис сервера, другий – імя облікового запису бази даних, якщо воно відрізняється:

USE Family

Ехес sp_grantdbaccess XPS \ Lauren, 1LRN

Після виконання цієї процедури, що зберігається реєстраційне імя Lauren зявиться в списку користувачів бази даних як LRN

Для зняття доступу до бази даних використовується збережена процедура sp_revokedbaccess При цьому потрібно вказати тільки імя користувача бази даних:

USE Family

Ехес sp_revokedbaccess LRN

I Для отримання списку користувачів бази даних програмним шляхом створи-сус ті запит до подання каталогу sysdatabase_principals

Фіксовані ролі бази даних

SQL Server містить кілька стандартних (або фіксованих) ролей бази даних Подібно серверним фіксованим ролям, в основному вони призначені для виконання

адміністративних завдань Один користувач може належати кільком ролям Серед фіксованих ролей бази даних варто згадати наступні

■ Роль db_accessadmin дозволяє авторизувати користувача для доступу до бази даних, але не для управління системою безпеки рівня бази

■ Роль db_backupoperators дозволяє виконувати завдання установки контрольних точок, створення резервних копій, запуску команди DBCC У той же час вона не відкриває можливості відновлення бази даних – це дозволено тільки членам ролі sysadmin

■ Роль db_datareaders дозволяє читати всі дані в базі Ця роль є еквівалентом дозволу доступу до всіх обєктів бази і може бути заміщена дозволом deny окремих обєктів

■ Роль db_datawr iters дозволяє записувати дані в базу Ця роль є еквівалентом дозволу доступу до всіх обєктів бази і може бути заміщена дозволом deny окремих обєктів

■ Роль db_ddladmins дозволяє виконувати інструкції DDL (CREATE, ALTER і DROP)

■ Роль db_denydatareaders блокує читання з усіх таблиць бази даних Ця заборона заміщає собою будь-які дозволи на рівні обєктів

■ Роль db_deny data writers блокує зміну даних у всіх таблицях бази даних Ця заборона заміщає собою будь-які дозволу на рівні обєктів

■ Роль db_owner відкриває повний доступ до всіх обєктів бази даних Ця роль включає в себе всі можливості інших ролей Вона відрізняється від ролі користувача dbo і не є еквівалентом серверної ролі sysadmin на рівні бази даних, оскільки заборона на рівні обєктів заміщає собою надане роллю db_owner дозвіл

■ Роль db_securityadmins дозволяє управляти системою безпеки бази даних – ролями та дозволами

Призначення фіксованих ролей бази даних в Management Studio

Фіксовану роль бази даних можна призначити користувачеві в графічному середовищі Management Studio Для цього можна використовувати будь-яку з процедур, описаних нижче

■ Роль користувачеві можна призначити в діалоговому вікні Database User Properties (див рис 407), як у випадку його створення, так і у випадку його існування

■ Роль користувачеві можна призначити в діалоговому вікні Database Role Properties (рис 408) Щоб відкрити це вікно, клацніть правою кнопкою миші на папці Roles у вузлі Security бази даних і виберіть в контекстному меню пункт Properties

Призначення користувачів фіксованим ролям бази даних програмним шляхом

У програмному коді додати користувача у фіксовану роль бази даних можна за допомогою збереженої процедури sp_addrole

j Для перегляду користувачів, призначених ролі, виконайте запит до представ-

ОУС лению каталогу sysdatabase_role_members, обєднаному з sysdatabase_ I * principal

Puc 408 У діалоговому вікні Database Role Properties перераховані всі користувачі, призначені поточної ролі Призначення і відкріплення користувачів від ролі виконується за допомогою кнопок Add і Remove

Дозволи захищених обєктів

Користувачеві бази даних можуть бути надані конкретні дозволу до певних захищених обєктів Для цього використовується сторінка Securabies діалогового вікна Database User (рис 409)

Спосіб конфігурування дозволів залежить від типу обєкта Кожна база даних являє собою обєкт, що захищається і має ряд специфічних тільки для неї дозволів

Якщо у вас немає особливих підстав регулювати доступ на рівні окремих інструкцій, найкраще керувати завданнями адміністрування бази даних за допомогою фіксованих ролей бази даних

Інструкції GRANT REVOKE і DENY ми докладно розглянемо в наступних розділах

Ролі додатків

Роллю додатка називається специфічна для бази даних роль, яка призначена для надання додатком певних повноважень, незалежно від прав, якими володіє працює з ним користувач Наприклад, якщо деяка програма Visual Basic використовується для пошуку в таблиці Customer, до якої не відкритий доступ конкретним користувачам, програма може використовувати запрограмовану роль додатка для отримання доступу до ресурсів SQL Server

Так як за роль додатки доведеться розплачуватися втратою контролю над Увага ідентичністю користувача, я виступаю рішуче проти використання ролей додатків

Рис 409 Сторінка Securables використовується для конфігурування дозволів до окремих обєктів

Джерело: Нільсен, Пол Microsoft SQL Server 2005 Біблія користувача : Пер з англ – М: ООО ІД Вільямс , 2008 – 1232 с : Ил – Парал тит англ

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*