Лого на 91. НЕГ „Проф. Константин Гълъбов“

Модул 4 · Урок 9

Поддържане на база от данни

Ежедневната администрация: роли и права (GRANT), потребителски профили и удостоверяване в мрежа, архивиране и възстановяване (Backup & Restore).

Роли

В експлоатацията на една ИС с базата работят много потребители. Ако всеки може всичко, бързо идват проблемите — не само съзнателни вреди, но и несъгласуваност или просто липса на внимание. Защитата е възлагането на роли: всяка роля определя набор от права и задължения, съответстващ на квалификацията и отговорностите на потребителя.

Системна роляПредназначение
db_accessadminадминистратор на правата за достъп до данните
db_backupoperatorправо да съхранява резервни копия (backup)
db_securityadminотговаря за предпазване от неразрешен достъп
db_datareader / db_datawriterчетене / писане на данните
publicминимални права — за външните потребители

Конвенция за имената

Системните роли започват с db_ (както вградените процедури — със sp_). Затова нашите роли започват с db, но третата буква НЕ е знакът за подчертаване.

Нова роля и права

CREATE ROLE dbExecOnly;
GRANT EXECUTE TO dbExecOnly;
ПравоПозволява
EXECUTEизпълняване на съхранени процедури и функции (без списък — всичките)
CREATEсъздаване на обекти на ниво сървър/база
DELETEизтриване на обекти — възлага се особено внимателно!
SELECT / UPDATEразглеждане / обновяване — може да се ограничи до конкретни атрибути и таблици

Мрежа и потребителски профили

  • Обичайно базата е на сървърна машина в мрежа. Достъпът отвън се разрешава със SQL Server Configuration Manager: Protocols for SQLEXPRESS → TCP/IP → Enabled = Yes, TCP Port = 1433.
  • Сървърът се превключва в режим SQL Server and Windows Authentication mode (Properties → Security) и се рестартира.
  • Нов профил: папката Security на сървъра → New Login… — име, парола, отметки Enforce password policy и User must change password at next login (при първото свързване потребителят сменя служебната парола със своя).
  • С User Mapping свързваме профила с база и роли — по премълчаване получава само минималистичната public; отмятаме например dbExecOnly.

Архивиране и възстановяване (Backup & Restore)

Архивирането (backup) създава резервно копие на базата — файл с разширение .BAK; възстановяването (restore) я връща от копието при повреда. В SSMS: контекстно меню на базата → Tasks/Backup (с бутона Add избираме друго място, например външен диск); обратно — Restore Database… от папката Databases.

Ключово

Грижите за базата не може да са инцидентни — те трябва да са добре планирани и ежедневни. Базата е най-важният елемент на информационната система.

Практикум

1) Формулирайте ролите за вашия проект за училищна ИС и ги регистрирайте. 2) Създайте профили на участниците с поне по една роля. 3) Архивирайте School, направете нарочно „неразумни“ изтривания и възстановете базата от копието.

Какво трябва да запомниш

  • Роля = набор от права; на всеки потребител — роля по квалификацията и отговорностите му.
  • CREATE ROLE + GRANT право ON обект TO роля; DELETE се дава най-внимателно.
  • Мрежов достъп: TCP/IP Enabled, порт 1433, SQL Server Authentication с лични профили.
  • Backup (.BAK) редовно; Restore връща базата при повреда.
  • Поддръжката е планирана и ежедневна, не инцидентна.