只需阅读此链接:
http://msdn.microsoft.com/en-us/library/aa833199.aspx
它指出:您无法将用户添加到数据层应用程序(DAC)项目中的角色,因为DAC项目不支持EXEC StoredProcedure构造,除了在对象的主体内,例如存储过程或函数。有关详细信息,请参阅Microsoft网站上的以下页面:数据层应用程序中支持的功能。
那么,作为部署的一部分,如何才能授予任何权限?
答案 0 :(得分:2)
经过多次挖掘和黑客攻击后,我终于找到了解决方案。
DOMAIN\USER
只需输入USER
)并点击< Enter > 为您的代码输入此代码,然后保存并关闭文件( USER.login.sql )
create login [DOMAIN\USER] from windows
DOMAIN\USER
只需输入USER
)并点击< Enter > 为您的代码输入此代码,然后保存并关闭文件( USER.user.sql )
create user [USER]
for login [DOMAIN\USER]
with default_schema = dbo;
为您的代码输入此内容,然后保存并关闭文件
alter login [DOMAIN\USER] enable
go
use [DAC-DB-NAME];
exec sp_addrolemember db_owner, [USER]
go
请注意,可以使用一组 grant 语句替换 sp_addrolemember
最终,我认为这样做的真正困难在于如何运行部署后脚本。运行时,当前使用数据库最初设置为主数据,但为了发出exec sp_addrolemember
和/或grant
,{ {1}}必须先设置当前数据库。 [纯猜测结束]
快乐编码!
罗伯特麦考尔
“ 所有 人类的持久和平与幸福!”
脚注:PowerShell脚本(使用DAC PS Scripts)卸载&丢弃DAC数据库
use [DAC-DB-NAME];