HAS_DBACCESS (Transact-SQL)

适用于:SQL ServerAzure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)

返回信息,说明用户是否可以访问指定的数据库。

Transact-SQL 语法约定

语法

HAS_DBACCESS ( 'database_name' )  

注意

若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

参数

'database_name'
数据库的名称,用户希望获取有关该数据库的访问信息。 database_name 的数据类型为 sysname

返回类型

int

备注

如果用户可以访问该数据库,则 HAS_DBACCESS 返回 1。如果用户不能访问该数据库,则返回 0。如果该数据库名无效,则返回 NULL。

如果数据库处于脱机或可疑状态,HAS_DBACCESS 将返回 0。

如果数据库处于单用户模式并且该数据库正由另一个用户使用,HAS_DBACCESS 将返回 0。

权限

要求具有 public 角色的成员身份。

示例

下面的示例测试当前用户是否有权访问 AdventureWorks2022 数据库。

SELECT HAS_DBACCESS('AdventureWorks2022');  
GO  

示例:Azure Synapse Analytics 和 Analytics Platform System (PDW)

下面的示例测试当前用户是否有权访问 AdventureWorksPDW2012 数据库。

SELECT HAS_DBACCESS('AdventureWorksPDW2012');  
GO  

另请参阅

IS_MEMBER (Transact-SQL)
IS_SRVROLEMEMBER (Transact-SQL)