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 的值并执行 - 工作正常。
我正在开发 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 的值并执行 - 工作正常。