LightSwitch内部数据库权限

时间:2015-05-28 09:13:38

标签: c# sql-server visual-studio-lightswitch access-rights

我正在开发VS Lightswitch应用程序(C#Desktop Client,SQL Server数据库)。我的问题现在是:

在应用程序数据库中,我有一个角色,执行此客户端的Windows用户是该角色的成员。但是这个用户在Intrinsic DB(位于同一个sql server上)需要哪些权限。如果他是db_owner,那当然它工作正常,但这不是解决方案?他必须是特殊角色的成员吗?

感谢任何帮助 - 谢谢!

1 个答案:

答案 0 :(得分:0)

找到解决方案!如果您发布解决方案,您将在Publish-Folder中找到2个SQL文件(使用SQLCMD执行!)

  • “your_applicatoin” 的.sql
  • CreateUser.sql

其中CreateUser.sql是用于将用户添加到内部db的模板:

:setvar DatabaseName ""
:setvar DatabaseUserName ""
GO

USE [$(DatabaseName)]

DECLARE @usercount int
SELECT @usercount=COUNT(name) FROM sys.database_principals WHERE name = '$(DatabaseUserName)'
IF @usercount = 0
    CREATE USER $(DatabaseUserName) FOR LOGIN $(DatabaseUserName)
GO

EXEC sp_addrolemember N'db_datareader', N'$(DatabaseUserName)'
EXEC sp_addrolemember N'db_datawriter', N'$(DatabaseUserName)'
EXEC sp_addrolemember N'aspnet_Membership_FullAccess', N'$(DatabaseUserName)'
EXEC sp_addrolemember N'aspnet_Roles_FullAccess', N'$(DatabaseUserName)'
EXEC sp_addrolemember N'aspnet_Profile_FullAccess', N'$(DatabaseUserName)'
GO

只需设置DatabaseName和DatabaseUserName的值并执行 - 工作正常。