sql server express 权限

Posted

技术标签:

【中文标题】sql server express 权限【英文标题】:sql server express Permissions 【发布时间】:2016-11-22 09:02:41 【问题描述】:

我用数据库制作了一个 Web 应用程序,在 sql server express 我打开服务器并在 Visual Studio 中构建表格(我找不到其他方法) 当我去数据库网站(在线)时说我没有权限, 有谁知道我如何通过 Visual Studio 添加权限?

错误:

“/”应用程序中的服务器错误。

对对象“UsersTable”、数据库的 SELECT 权限被拒绝 'master',架构'dbo'。

描述:执行过程中发生了未处理的异常 当前的网络请求。请查看堆栈跟踪以获取更多信息 有关错误的信息以及它在代码中的来源。

异常详细信息:System.Data.SqlClient.SqlException:SELECT 对象'UsersTable',数据库'master'的权限被拒绝, 架构“dbo”。

来源错误:

在执行过程中产生了一个未处理的异常 当前的网络请求。有关原产地和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。

堆栈跟踪:

[SqlException (0x80131904): SELECT 权限在 对象'UsersTable',数据库'master',模式'dbo'。] System.Data.SqlClient.SqlConnection.OnError(SqlException 异常, Boolean breakConnection,Action1 wrapCloseInAction) +3279580 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +791 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) +4927 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() +92 System.Data.SqlClient.SqlDataReader.get_MetaData() +102 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +552 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds, Boolean describeParameterEncryptionRequest) +3114 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource1 完成,Int32 超时,Task& 任务, 布尔异步写入)+554 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior、RunBehavior、runBehavior、布尔返回流、字符串 方法)+98 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior 行为,字符串方法)+307 System.Data.SqlClient.SqlCommand.ExecuteReader() +132 KIP_FP.KIPDB.chackUser(String userN) in C:\Users\Administrator\Documents\KIP-FP\KIP-FP\KIPDB.cs:31 KIP_FP.KIPBL.chackUser(String userN) in C:\Users\Administrator\Documents\KIP-FP\KIP-FP\KIPBL.cs:37 KIP_FP.loginUserPage.Button1_Click(Object sender, EventArgs e) in C:\Users\Administrator\Documents\KIP-FP\KIP-FP\Login.aspx.cs:34 System.Web.UI.WebControls.Button.OnClick(EventArgs e) +11750641 System.Web.UI.WebControls.Button.RaisePostBackEvent(字符串 eventArgument) +150 System.Web.UI.Page.ProcessRequestMain(布尔值 includeStagesBeforeAsyncPoint,布尔型 includeStagesAfterAsyncPoint) +6016

【问题讨论】:

您是在 Master 数据库中创建了新数据库还是仅创建了表? 不相关,但您可能想尝试 SQL Management Studio 而不是通过 Visual Studio 进入。 【参考方案1】:

您有权在 UsersTable 表上进行 SELECT,但您的 Web 应用程序的应用程序池没有它,因为它在另一个没有权限的用户帐户下运行。 要添加权限,您必须运行以下命令:

USE master;  
GRANT SELECT ON OBJECT::dbo.UsersTable TO PoolUser;  
GO  

但首先你应该找出哪个用户在 App 上。游泳池。

【讨论】:

我如何知道在哪里可以找到 App 上的用户。游泳池? 我认为您的 Web 服务器是 IIS,所以这篇 ms 文章应该会有所帮助:iis.net/learn/manage/configuring-security/… 您需要找出您的池的身份。

以上是关于sql server express 权限的主要内容,如果未能解决你的问题,请参考以下文章

VB.NET 不在 sql server 2008 express 中创建数据库

SQL Server 2008 R2 Express 权限——不能创建数据库或修改用户

具有 Windows 身份验证的 sql server EXPRESS 实例没有创建数据库的任何权限

SQL Server Express CREATE DATABASE 权限在数据库“主”中被拒绝

如何找到对 SQL Server Express 具有系统管理员访问权限的 Windows 用户和组?

请问微软提供的sql server 2008 r2 express怎么有两个版本呢?有啥区别啊?