Смена владельца диаграммы базы данных в SQL Server 2005 - PullRequest
12 голосов
/ 14 мая 2009

Мне нужно изменить владельца диаграммы базы данных в SQL Server 2005. В настоящее время она принадлежит мне (domain \ username.diagramName), и я хотел бы изменить ее на dbo (dbo.diagramName). Я думал, что мог бы использовать sp_changeobjectowner, но я считаю, что это только для таблиц, хранимых процедур и т. Д. ... Я думаю, что это довольно просто, я просто не смог найти что-либо через поиск в Google.

Ответы [ 5 ]

18 голосов
/ 19 мая 2009

В конце концов мне пришлось удалить схему этого пользователя, а затем запустить следующее обновление ...

-- 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

Я закончил тем, что получил необходимую помощь от администратора БДД здесь, в кампусе.

14 голосов
/ 27 апреля 2012
UPDATE dbo.sysdiagrams 
SET principal_id = 1

Установите предложение WHERE, если это необходимо. Текст выше предлагает вам удалить пользователя из базы данных, но мне не нужно было этого делать. Я использую SQL2008 R2.

5 голосов
/ 15 августа 2012
USE [db_name]
UPDATE dbo.sysdiagrams 
SET principal_id = 1

Если приведенный выше оператор не работает, вы можете отредактировать эту таблицу, щелкнув правой кнопкой мыши на dbo.sysdiagrams и выбрать Редактировать верхние 200 строк, затем вы можете установить столбец Principal_id для всех записей, вручную установив 1

2 голосов
/ 14 мая 2009

В этой статье говорится, что вам придется удалить себя как пользователя БД. Откройте его с пользователем по вашему выбору.

http://msdn.microsoft.com/en-us/library/ms171972(VS.80).aspx

0 голосов
/ 26 мая 2009

Хотя это не помогло бы в этом случае (потому что просто воссоздает всю строку sysdiagrams), эти сценарии

ScriptDiagram2005 или ScriptDiagram2008

позволяет вам создать INSERT-скрипт для диаграмм 'content', который будет повторно запущен для исходной базы данных (или резервной копии, или скриптовой копии, или чего-либо еще). Вы можете легко (зная, что вы теперь знаете о principal_id) воссоздать диаграмму с новым владельцем.

Просто найдите и отредактируйте оставшуюся часть этого утверждения в скрипте

INSERT INTO sysdiagrams ([name], [principal_id], [version], [definition])

реальная выгода - возможность контролировать / резервировать текстовый файл ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...