我是一个兼职的SqlServer2005DBA,其全职工作是开发商业智能解决方案,但是BI与数据库相交的地方,它就在我的“堆栈”中。
当另一个开发人员需要在几个针对企业应用程序数据库运行的存储过程中添加SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED时,我们有许多计划好的报告失败了。
结果显示,报表工具使用的登录名没有正确的权限。它可以执行存储过程,但不能使用添加的SET TRANSACTION ISOLATION LEVEL。
通过将db_owner角色添加到数据库的登录属性中,我能够暂时绕过它。它已经拥有了db_datareader、db_datawriter和public。但是,似乎我应该能够授予一个权限来缓解这个问题,而不需要授予登录db_owner角色。
我已经阅读了Server联机丛书中关于GRANT的所有信息,但找不到授予什么权限。
有人能帮我吗?如果你知道什么资源,我很想知道。
谢谢!
发布于 2016-02-02 21:06:42
首先是一个快速点..。除非需要随机获取坏数据,否则使用read uncommitted是非常不寻常的。
讲课完成后,权限通常在单独的命令下找到。在这种情况下,您将看到设置事务隔离级别。
通常,您会找到一个Security/Permissions部分,尽管在本例中没有。我相信这是因为这是一个任何人都可以运行的命令(尽管必须启用一些隔离级别)。您可以查找权限的另一个位置是数据库或服务器的properties。您将看到一个具有可用权限列表的Permissions选项卡。但我还是没找到任何与命令有关的东西。
我最困惑的是,你批准了db_owner,他们成功了。我的猜测是,实际造成问题的并不是设置的隔离级别。你能不能把你得到的实际错误包括在内?
https://dba.stackexchange.com/questions/128059
复制相似问题