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,Action
1 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, TaskCompletionSource
1 完成,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 权限在数据库“主”中被拒绝