Управление доступом dbo и guest
Имя входа не может получить доступ к базе данных, если явным образом ему
не предоставлен доступ через создание пользователя базы данных. Это
утверждение в целом верно, но есть два исключения: каждая база данных
SQL Server включает пользователей dbo и guest.
Пользователь dbo
– это специальный пользователь (или владелец базы
данных) – представляет собой учетную запись пользователя, которая имеет
неявно заданные разрешения на выполнение любых действий с базой
данных. Он всегда присутствует в каждой базе данных, его невозможно
удалить. Любой член фиксированной серверной роли sysadmin (включая
пользователя sa при использовании смешанного режима проверки
подлинности), который использует базу данных, сопоставляется с этим
пользователем.
Владелец базы данных может быть изменен. Любой пользователь (имя входа
SQL Server или Microsoft Windows), имеющий возможность соединения с
SQL Server, может стать владельцем базы данных. В следующем примере
показано, как изменить владельца базы данных с помощью инструкции
ALTER AUTHORIZATION:
ALTER AUTHORIZATION ON DATABASE::salesdb
TO [ADVENTUREWORKS\Database_Managers];
Учетную запись пользователя
dbo
часто путают с предопределенной ролью
базы данных
db_owner
. Членство в роли
db_owner
не дает доступа к
пользовательским привилегиям роли
dbo
.
Учетная запись пользователя guest
является встроенной учетной записью
во всех версиях SQL Server. После прохождения пользователем проверки
подлинности и получения разрешения на вход в экземпляр SQL Server в
каждой базе данных должна существовать отдельная учетная запись
пользователя, к которой пользователь должен получить доступ. Это
требование предотвращает соединение пользователей с экземпляром SQL
Server и получение доступа ко всем базам данных сервера. Наличие учетной
записи пользователя guest в базе данных дает возможность обойти данное
требование Она позволяет пользователю с именем входа, которое не
сопоставлено ни одному пользователю в конкретной базе данных, получить
доступ к этой базе данных.
Нельзя удалить учетную запись пользователя guest, но можно ее отключить,
чтобы предотвратить доступ к БД:
REVOKE CONNECT FROM guest;
По умолчанию учетная запись guest в новых БД отключена. Можно включить
гостевую учетную запись с помощью инструкции GRANT CONNECT:
73
GRANT CONNECT TO guest;
По умолчанию учетная запись пользователя guest включена в системных БД
master, msdb и tempdb. Вы не должны пытаться отменить гостевой доступ
в этих базах данных.
Do'stlaringiz bilan baham: |