На одном из серверов SQL Server 2005 при попытке открыть свойства БД через GUI видим:
Действительно, определить владельца БД не удается:
select owner_sid, suser_sname(owner_sid) from sys.databases where name='model'
owner_sid | owner name |
0x010500000000000515000000B92ACD62A473F62D825A8A49A3780000 | NULL |
Вероятно, это был доменный пользователь, которого больше нет в AD.
Изменить владельца процедурой sp_changedbowner в БД model нельзя:
use model; EXEC sp_changedbowner 'sa'
Msg 15109, Level 16, State 1, Line 1
Cannot change the owner of the master, model, tempdb or distribution database.
Можно поменять sid непосредственно в системной таблице, как описано здесь, но это, действительно, нерекомендуемый MS путь.
Так что воспользуемся тем, что при присоединении любой БД её владельцем становится текущий пользователь, и, запустив SQL Server с ключом /T3608, выполним из-под сессии пользователя sa:
EXEC master.dbo.sp_detach_db @dbname = N'model' GO CREATE DATABASE [model] ON ( FILENAME = N'E:\DATA\model.mdf' ), ( FILENAME = N'E:\DATA\modellog.ldf' ) FOR ATTACH GO
Перезапустим SQL Server, убеждаемся:
select owner_sid, suser_sname(owner_sid) 'owner name' from sys.databases where name='model'
owner_sid | owner name |
0x01 | sa |