Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 将sys.databases视图限制为可连接的数据库_Sql Server_Sql Server 2017_Availability Group - Fatal编程技术网

Sql server 将sys.databases视图限制为可连接的数据库

Sql server 将sys.databases视图限制为可连接的数据库,sql-server,sql-server-2017,availability-group,Sql Server,Sql Server 2017,Availability Group,如何将sys.databases的结果限制为可用数据库 我们正在转向在sql server 2017上运行的可用性组和副本服务器 在此之前,我在master数据库上运行了一个select语句,以查看服务器上正在运行哪些数据库select name,state from sys.databases,然后让用户选择一个数据库,并为进一步的sql语句设置到数据库的连接 但现在,在具有可用性组和副本服务器的新系统上,当我打开到单个可用性组的连接时,我会看到更多无法连接的数据库 select语句显示所有数

如何将sys.databases的结果限制为可用数据库

我们正在转向在sql server 2017上运行的可用性组和副本服务器

在此之前,我在master数据库上运行了一个select语句,以查看服务器上正在运行哪些数据库select name,state from sys.databases,然后让用户选择一个数据库,并为进一步的sql语句设置到数据库的连接

但现在,在具有可用性组和副本服务器的新系统上,当我打开到单个可用性组的连接时,我会看到更多无法连接的数据库

select语句显示所有数据库,即使它们属于同一复制服务器托管的另一个可用性组


问题是,对于dbo来说,找出哪些数据库属于可用性组sys.availability-Views是没有问题的,但是普通用户没有查看这些sys视图所需的权限,我也不想给他提供view\u server\u stats角色。

如果我理解您的问题,您会问,您是否可以将sys.databases视图更改为仅显示当前用户具有连接访问权限的数据库?a好吧,这是不可能的。我不想更改视图,但如果可能,请将sys.databases视图与另一个视图连接,或者使用where筛选器仅选择此可用性组的可用数据库,因为视图也不起作用-如果您尝试加入可用性\数据库\集群之类的东西,您会发现正在执行的模块不可信。所有权链接不会帮你解决问题。表值函数本身也不会。签名的存储过程可能会起作用。。。为了让那些没有特权的用户得到这些信息,我们付出了很多努力。