【问题标题】:sql server express Permissionssql server express 权限
【发布时间】: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, 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 进入。

标签: sql-server sql-server-express


【解决方案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/… 您需要找出您的池的身份。
猜你喜欢
  • 2011-02-13
  • 1970-01-01
  • 1970-01-01
  • 2011-05-24
  • 2016-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-24
相关资源
最近更新 更多