Для передачи прав владения базой данных от одного пользователя другому используется следующая хранимая процедура:
sp_changedbowner [(Ploginame =] "login"
[,[@map =] remap_al1as_f1ag]
Рассмотрим назначение каждого из аргументов хранимой процедуры. О [Ologiname =] "login". Имя учетной записи пользователя, которого требуется сделать владельцем базы данных. Эта учетная запись не должна иметь доступа к базе данных ни через псевдоним, ни через отображение в пользователя базы данных. В противном случае перед выполнением хранимой процедуры необходимо сначала удалить все отображения учетной записи в пользователя базы данных.
О [map =] remap_al i as_fl ag. Этот аргумент может принимать значение TRUE или FALSE. Значение TRUE означает, что учетная запись старого владельца базы данных будет отображаться в учетную запись нового владельца. Если задано FALSE, учетная запись старого владельца уничтожается. Если этот аргумент опускается, то есть принимает значение NULL, то все существующие dbo будут отражены в учетную запись нового владельца базы данных. Хранимая процедура sp_changedbowner должна выполняться в контексте базы данных, владельца которой необходимо изменить. Например, для изменения владельца базы данных KHSU необходимо выполнить следующую команду:
USE khsu
EXEC sp_changedbowner "MATRIXXAdmlnistrator"
Изменение имени базы данных
При рассмотрении команды ALTER DATABASE мы уже говорили, что она позволяет изменить имя базы данных. Однако для изменения имени базы данных также можно использовать следующую хранимую процедуру:
sp_renamedb [@old_name =] "old_name". [@new_name =] "new_name"
Аргумент "old_name" должен содержать старое имя базы данных. Новое же имя указывается с помощью аргумента "new_name".
Права на выполнение этой хранимой процедуры имеют только члены фиксированной роли сервера sysadmin.
Просмотр свойств базы данных
Часто бывает необходимо получить исчерпывающую информацию о структуре и параметрах базы данных. В этом разделе будут рассмотрены средства Transact-SQL, с помощью которых можно получить различную информацию о базе данных. Для просмотра значения параметров конфигурации базы данных, установленных с помощью хранимой процедуры sp_dboption или средствами Enterprise Manager, можно использовать системную хранимую процедуру sp_dboption с указанием только имени базы данных. Например, для получения информации о параметрах базы данных pubs можно выполнить следующую команду: EXEC sp_dbopt1on "pubs"
Будет возвращен примерно следующий результат:
The following options are set:
published
trunc. log on chkpt. torn page detection auto create statistics auto update statistics
Как видно, возвращается список только тех параметров, которые были установлены. Для получения значения конкретного параметра необходимо указать не только имя базы данных, но и имя интересующего параметра конфигурации:
ЕХЕС spjboption "pubs", "ANSI null default"
В результате выполнения этой команды будет получен примерно следующий результат:
OptionName CurrentSetting
ANSI null default off
Если выполнить хранимую процедуру sp_dboption вообще без аргументов, то она выдаст список всех доступных параметров конфигурации:
Settable database options:
ANSI null default
ANSI nulls
ANSI padding
ANSI warnings
arithabort
auto create statistics
auto update statistics
autoclose
autoshrink
concat null yields null
cursor close on commit
dbo use only
default to local cursor
merge publish
numeric roundabort
offline
published
quoted identifier
read only
recursive triggers
select into/bulkcopy
single user
subscribed
torn page detection
trunc. log on chkpt.
Помимо хранимой процедуры sp_dboption для получения значения тех же и некоторых дополнительных параметров конфигурации можно использовать следующую команду: DATABASEPROPERTY("database_name". "property")