1

我正在开发一个 VS Lightswitch 应用程序(C# 桌面客户端、SQL Server 数据库)。我现在的问题是:

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

任何帮助表示赞赏 - 谢谢!

4

1 回答 1

0

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

  • “你的应用程序”.sql
  • 创建用户.sql

其中 CreateUser.sql 是将用户添加到内部数据库的模板:

: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 的值并执行 - 工作正常。

于 2015-06-10T07:00:13.020 回答