【问题标题】:LightSwitch Intrinsic DB rightsLightSwitch 内在数据库权限
【发布时间】:2015-08-10 16:50:44
【问题描述】:

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

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

感谢任何帮助 - 谢谢!

【问题讨论】:

  • 我使用的是 SQL Server 2014 EE、Visual Studio 2013 Ultimate

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


【解决方案1】:

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

  • “你的应用程序”.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 的值并执行 - 工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-31
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 2023-04-01
    • 2010-12-10
    相关资源
    最近更新 更多