LightSwitch DB固有权限

本文关键字:权限 DB LightSwitch | 更新日期: 2023-09-27 17:51:05

我正在做一个VS Lightswitch应用程序(c#桌面客户端,SQL Server数据库)。我的问题是:

在Application Database中,我有一个角色,并且执行这个客户端的Windows用户是该角色的成员。但是这个用户在内部数据库(位于同一sql服务器上)中需要哪些权限?如果他是db_owner,当然它工作得很好,但这不能是解决方案吗?他必须是某个特殊角色的成员吗?

任何帮助都是感激的-谢谢!

LightSwitch DB固有权限

找到解决方案!如果你发布你的解决方案,你会发现在发布文件夹中有2个sql文件(用于使用SQLCMD执行!)

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