HAS_DBACCESS (Transact-SQL)

適用対象:SQL ServerAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

ユーザーが、指定したデータベースにアクセスできるかどうかに関する情報を返します。

Transact-SQL 構文表記規則

構文

HAS_DBACCESS ( 'database_name' )  

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

'database_name'
ユーザーのアクセス情報が必要なデータベースの名前を指定します。 database_namesysname です。

戻り値の型

int

解説

HAS_DBACCESS は、ユーザーがデータベースにアクセスできる場合は 1、ユーザーがデータベースにアクセスできない場合は 0、およびデータベース名が有効でない場合は NULL を返します。

データベースがオフラインの場合または異常がある場合は、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)