SHOW MCP SERVERS¶
アクセス権限のある MCP(モデルコンテキストプロトコル)サーバーを一覧表示します。
このコマンドを使用して、セッションの現在のデータベースとスキーマ、指定したデータベースまたはスキーマ、またはアカウント全体のオブジェクトをリストします。
出力には、各オブジェクトのメタデータとプロパティが含まれます。オブジェクトは、データベース、スキーマ、オブジェクト名で辞書順にソートされます(出力列の説明については、このトピックの Output をご参照ください)。結果をフィルターする場合は、結果の行の順序に注意することが重要です。
- こちらもご参照ください。
構文¶
SHOW MCP SERVERS [ LIKE '<pattern>' ]
[ IN
{
ACCOUNT |
DATABASE |
DATABASE <database_name> |
SCHEMA |
SCHEMA <schema_name> |
<schema_name>
}
]
パラメーター¶
LIKE 'pattern'オプションで、オブジェクト名でコマンド出力をフィルタリングします。フィルターは、 SQL ワイルドカード文字(
%および_)をサポートする、 大文字と小文字を区別しない パターンマッチングを使用します。たとえば、次のパターンは 同じ 結果を返します。
... LIKE '%testing%' ...... LIKE '%TESTING%' .... デフォルト: 値なし(フィルタリングは出力に非適用)。
[ IN ... ]オプションで、コマンドのスコープを指定します。次のいずれかを指定します。
ACCOUNTアカウント全体の記録を返します。
DATABASE、 .DATABASE db_name現在使用中のデータベースまたは指定されたデータベース(
db_name)の記録を返します。db_nameなしでDATABASEを指定し、かつデータベースが使用されていない場合、キーワードは出力に影響しません。注釈
データベースコンテキストで
IN句を指定せずに SHOW コマンドを使用すると、予想よりも少ない結果になる可能性があります。IN句を使用しない場合、同じ名前のオブジェクトは一度だけ表示されます。例えば、schema1にテーブルt1、そしてschema2にテーブルt1があり、両方とも指定したデータベースコンテキストのスコープ内にある場合(つまり、選択したデータベースがschema1とschema2の親である場合)の場合、 SHOW TABLES はt1テーブルの1つのみを表示します。SCHEMA、 .SCHEMA schema_name現在使用中のスキーマまたは指定されたスキーマ(
schema_name)の記録を返します。データベースが使用中の場合、または完全修飾
schema_name(例:db.schema) を指定する場合、SCHEMAはオプションです。データベースが使用されていない場合は、
SCHEMAを指定しても出力には影響しません。
IN ...を省略した場合、コマンドのスコープは、セッションで現在使用中のデータベースがあるかどうかによって異なります。データベースが現在使用中の場合、コマンドはデータベースで表示する権限を持つオブジェクトを返します。これは、
IN DATABASEを指定するのと同じ効果があります。データベースが現在使用中の場合、コマンドはアカウントで表示する権限を持つオブジェクトを返します。これは、
IN ACCOUNTを指定するのと同じ効果があります。
出力¶
コマンドの出力には、オブジェクトのプロパティとメタデータを説明する以下の列が含まれます。
列 |
説明 |
|---|---|
|
MCP サーバーが作成された日時。 |
|
MCP サーバーの名前。 |
|
MCP サーバーを含むデータベース。 |
|
MCP サーバーを含むスキーマ。 |
|
MCP サーバーを所有するロール。 |
|
MCP サーバーのコメント。 |
アクセス制御の要件¶
この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。
権限 |
オブジェクト |
|---|---|
USAGE |
データベース(INDATABASE が指定されている場合) |
USAGE |
スキーマ(INSCHEMA が指定されている場合) |
このコマンドは、コマンドの実行に使用されたロールが保持する権限に基づいて、 MCP サーバーの記録を返します。
スキーマ内のオブジェクトを操作するには、親データベースの少なくとも1つの権限と、親スキーマの少なくとも1つの権限が必要です。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
このコマンドの実行には、稼働中のウェアハウスは必要ありません。
このコマンドは、現在のユーザーの現在のロールに少なくとも1つのアクセス権限が付与されているオブジェクトのみを返します。
MANAGE GRANTS アクセス権限により、所有者はアカウント内のすべてのオブジェクトを暗黙的に参照できます。デフォルトでは、アカウント管理者( ACCOUNTADMIN ロールを持つユーザー)とセキュリティ管理者( SECURITYADMIN ロールを持つユーザー)のみが MANAGE GRANTS 権限を持っています。
このコマンドの出力を後処理するには、 パイプ演算子 (
->>)または RESULT_SCAN 関数。どちらのコンストラクトも、出力を クエリできる結果セットとして扱います。たとえば、パイプ演算子または RESULT_SCAN 関数を使用して、 SHOW コマンドの出力から特定の列を選択したり、行をフィルター処理したりできます。
出力列を参照する場合は、列名に 二重引用符で囲まれた識別子 を使用します。たとえば、出力列
typeを選択するには、SELECT "type"を指定します。SHOW コマンドの出力列名は小文字のため、二重引用符で囲まれた識別子を使用する必要があります。二重引用符により、 SELECT リストまたは WHERE 句内の列名が、スキャンされた SHOW コマンド出力内の列名と一致することが保証されます。
コマンドは、コマンドを実行するために使用されるロールのアクセス権限によって決定された通り、指定されたオブジェクトタイプに対して 最大 1万件の記録を返します。1万件を超える記録は、フィルターを適用しても返されません。
1万件を超える記録が存在する結果を表示するには、 Snowflake Information Schema で対応するビュー(存在する場合)をクエリします。
スキーマレベルのオブジェクトに対して コマンドを実行すると、現在のロールが親データベースとスキーマに対しても少なくとも1つの権限を持っている場合にのみオブジェクトが返されます。
例¶
次の例は、 mydb データベースの PUBLIC スキーマで、表示権限を持っている MCP サーバーをリストします。
USE DATABASE mydb;
SHOW MCP SERVERS;
| created_on | name | database_name | schema_name | owner | comment |
------------------------------------------+-------------------+---------------+-------------+--------------+------------------------------
| Fri, 23 Jun 1967 07:00:00.123000 +0000 | TEST_MCP_SERVER | TEST_DATABASE | TEST_SCHEMA | ACCOUNTADMIN | [NULL] |
| Fri, 23 Jun 1967 07:00:00.123000 +0000 | TEST_MCP_SERVER_2 | TEST_DATABASE | TEST_SCHEMA | ACCOUNTADMIN | Test MCP server with comment |
次の例は、指定したデータベース内の MCP サーバーをリストします。
SHOW MCP SERVERS IN DATABASE mydb;
次の例は、指定されたスキーマの MCP サーバーをリストします。
SHOW MCP SERVERS IN SCHEMA mydb.public;
次の例では、アカウント内の全 MCP サーバーをリストしています。
SHOW MCP SERVERS IN ACCOUNT;