Мне нужно изменить владельца диаграммы базы данных в SQL Server 2005. В настоящее время она принадлежит мне (домен\имя_пользователя .diagramName), и я хотел бы изменить ее, чтобы она принадлежала dbo (dbo.diagramName). Я думал, что могу использовать sp_changeobjectowner, но я считаю, что это только для таблиц, хранимых процедур и т.д. Я думаю, что это довольно просто, я просто не смог найти что-либо в поиске Google.
Изменение владельца диаграммы базы данных в SQL Server 2005
Ответ 1
В конце концов, мне пришлось удалить эту схему пользователей, а затем запустить следующее обновление...
-- to identify the diagram id, name, & owner
select *
from dbo.sysdiagrams
-- to manually change the owner of a diagram
-- note: i derived that the principal_id =1 for dbo from above query
update
dbo.sysdiagrams set principal_id =1 where diagram_id = 1
В итоге я получил помощь, необходимую мне из DBA здесь, на территории кампуса.
Ответ 2
UPDATE dbo.sysdiagrams
SET principal_id = 1
Установите условие WHERE, если это необходимо. В приведенном выше тексте предлагается удалить пользователя из базы данных, но мне не нужно было этого делать. Я использую SQL2008 R2.
Ответ 3
USE [db_name]
UPDATE dbo.sysdiagrams
SET principal_id = 1
Если инструкция выше не работает, вы можете сделать редактирование в этой таблице, щелкнув правой кнопкой мыши по dbo.sysdiagrams и выбрать Edit top 200 rows, тогда вы можете установить столбец main_id для всех записей, вручную установленных на 1
Ответ 4
В этой статье говорится, что вам придется удалить себя как пользователя из db. Откройте его с пользователем по вашему выбору.
http://msdn.microsoft.com/en-us/library/ms171972(VS.80).aspx
Ответ 5
Хотя это не помогло бы в этом случае (потому что он просто воссоздает всю строку sysdiagrams
), эти скрипты
ScriptDiagram2005 или ScriptDiagram2008
позволяет создать INSERT script содержимого диаграмм ', который будет повторно запускаться с исходной базой данных (или с резервной копией, или с копией сценария, или любым другим). Вы можете легко (зная, что теперь знаете о principal_id
), снова создайте диаграмму с новым владельцем.
Просто найдите и отредактируйте остальную часть этого утверждения в script
INSERT INTO sysdiagrams ([name], [principal_id], [version], [definition])
реальная выгода заключается в возможности управления исходным кодом/резервного копирования текстового файла...