.net Publish to Prover создает «нежелательную» роль - PullRequest
0 голосов
/ 20 января 2010

Я использую функцию публикации в провайдере в .net 2008 для создания сценария создания базы данных.

В скрипте существует следующая строка:

/****** Object:  Role [srvTTAS]    Script Date: 01/20/2010 09:14:14 ******/
IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N'srvTTAS')
BEGIN
IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N'srvTTAS' AND type = 'R')
CREATE ROLE [srvTTAS]

Это вызывает проблему, поскольку у меня в базе данных установлен пользователь USER с именем «srvTTAS», а не роль. Поэтому, когда я запускаю этот скрипт, мне нужно вручную удалить роль, чтобы создать пользователя с тем же именем. Это означает, что созданный скрипт не создает точную копию рассматриваемой базы данных, есть ли способ сделать публикацию в провайдере, чтобы создать пользователя? (как я указал в базе данных?)

Ответы [ 2 ]

1 голос
/ 20 января 2010

Имя любого " принципала " в базе данных должно быть уникальным. Роли и пользователи являются принципалами.

Есть ли у этого издателя ошибка? Или, возможно, он не может правильно различать принципы (например, видимость метаданных)?

Во всяком случае, для чего используется srvTTAS? Для разрешения это должна быть роль в любом случае с пользователем вашей базы данных в роли.

0 голосов
/ 20 января 2010

Я подозреваю, что первый оператор SELECT отсутствует AND type = 'R'

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