拒绝了对对象 table (数据库 '**db',架构 'dbo')的 SELECT 权限

@[TOC](拒绝了对对象 ‘table’ (数据库 ‘thedb’,架构 ‘dbo’)的 SELECT 权限。)

一、问题

sqlserver数据库连接成功,但执行SELECT语句出现bug
com.microsoft.sqlserver.jdbc.SQLServerException: 拒绝了对对象 ‘table’ (数据库 ‘thedb’,架构 ‘dbo’)的 SELECT 权限。

1.如图

![控制台报错]](https://img-blog.csdnimg.cn/20190503122548468.png#pic_center)

2.状态

(1)版本——sql server2017

(2)用户——“root”

我连接数据库所用的用户名是自己新建的——user:“root”,有些权限需要赋予,可以通过"sa"或则系统验证进入管理器(Microsoft SQL Server Management Studio)对其进行赋予如(3)。

(3)权限

此前已经使用sa用户对其进行了一些权限授予,部分如下:

目前状态

二、分析

很有可能是权限范围给的不够,如下修改前权限范围
以上是默认范围

三、改动

将最后一项打钩,权限如下
修改后如图

四、结果(成功)

1.成功

控制台(Consol)输如下所示:
在这里插入图片描述
未报权限错误,以上bug与权限无关成功解决。

2.找出范围方法

(1)遍历

一个个单独打钩试

(2)二分法

分两份,一份全打钩,如下图所示
在这里插入图片描述
倘若不报错,则对应权限再此份中,继续去二分法尝试。

原文地址:https://www.cnblogs.com/bdqczhl/p/13404435.html