LightSwitch 内部数据库权限

LightSwitch Intrinsic DB rights

我正在开发 VS Lightswitch 应用程序(C# 桌面客户端,SQL 服务器数据库)。我现在的问题是:

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

感谢任何帮助 - 谢谢!

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

  • "your_applicatoin".sql
  • CreateUser.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 的值并执行 - 工作正常。