SQL Serverで作成済みユーザーを検索・一覧表示する方法
SQL Serverで、データベースに作成されたすべてのユーザーを一覧として取得するには、どのようなクエリを実行すればよいのでしょうか。
SQL Serverには「sys.database_principals」というシステムカタログビューが用意されています。このビューに対してクエリを実行すれば、データベースに作成されたすべてのユーザーとその詳細情報を簡単に確認できます。
SQL Server上のすべてのユーザーを取得するには、以下のコマンドを実行します。
SELECT *
FROM master.sys.database_principals;
sys.database_principals の主な列
| 列名 | 説明 |
|---|---|
| name | CREATE USER コマンドで作成されたユーザー名 |
| principal_id | プリンシパルのID(数値) |
| type | プリンシパルの種類(後述のコード) |
| type_desc | プリンシパルの種類の説明 |
| default_schema_name | スキーマが明示されていない場合に使用される既定のスキーマ名 |
| create_date | CREATE USER コマンドによってユーザーが作成された日時 |
| modify_date | ユーザーが最後に変更された日時 |
| owning_principal_id | このユーザーを所有するプリンシパルのID |
| sid | CREATE LOGIN コマンドで指定された SID 値 |
| is_fixed_role | 固定ロールかどうか(0 または 1) |
| authentication_type | NONE / WINDOWS / INSTANCE のいずれか |
| default_language_name | 既定の言語名 |
| default_language_lcid | 既定の言語の LCID |
type 列に格納されるプリンシパルの種類
- S = SQL Server ユーザー
- U = Windows ユーザー
- G = Windows グループ
- A = アプリケーションロール
- R = データベースロール
- C = 証明書にマップされたユーザー
- K = 非対称キーにマップされたユーザー
type_desc 列に格納される値
- SQL_USER
- WINDOWS_USER
- WINDOWS_GROUP
- APPLICATION_ROLE
- DATABASE_ROLE
- CERTIFICATE_MAPPED_USER
- ASYMMETRIC_KEY_MAPPED_USER
旧バージョンのSQL Serverの場合
SQL Server 2000などの旧バージョンでは、「sys.sysusers」テーブルを使用してすべてのユーザーを取得できます。実行コマンドは以下のとおりです。
SELECT *
FROM master.sys.sysusers;
sys.sysusers の主な列
| 列名 | 説明 |
|---|---|
| uid | ユーザーID(一意の数値) |
| status | 内部使用のみ |
| name | CREATE USER コマンドで作成されたユーザー名 |
| sid | CREATE LOGIN コマンドで指定された SID 値 |
| roles | 未実装 |
| createdate | CREATE USER コマンドによってユーザーが作成された日時 |
| updatedate | ユーザーが最後に変更された日時 |
| altuid | 内部使用のみ |
| password | 内部使用のみ |
| gid | ユーザーに割り当てられたグループID |
| environ | 内部使用のみ |
| hasdbaccess | データベースへのアクセス権の有無(0 または 1) |
| islogin | ログイン可能かどうか(0 または 1) |
| isntname | Windowsアカウントかどうか(0 または 1) |
| isntgroup | Windowsグループかどうか(0 または 1) |
| isntuser | Windowsユーザーかどうか(0 または 1) |
| issqluser | SQL Serverユーザーかどうか(0 または 1) |
| isaliased | 別名を持つアカウントかどうか(0 または 1) |
| issqlrole | SQL Serverロールかどうか(0 または 1) |
| isapprole | アプリケーションロールかどうか(0 または 1) |
あわせて読みたい関連記事
- SQL Serverでログイン(Login)を検索する方法
- SQL Serverの CREATE USER コマンドの使い方
-
MS SQL Serverでユーザーを作成する方法【T-SQL・SSMS両対応】
ここでいうユーザーとは、MS SQL Server上でデータベースへアクセスするためのアカウントのことを指します。 ユーザーは、以下の2つの方法のいずれかで作成できます。 方法1:T-SQLを使用する MS SQL Serverでユーザーを作成する際の基本構文は以下の通りです。 Create user <ユーザー名> for login <ログイン名> 実行例 TestDB データベースに、ログイン名 TestLogin に関連付けた TestUser というユーザーを作成するには、次のクエリを実行します。 create user TestUser for login
-
MS SQL Serverとは?特徴・主な用途・バージョン履歴・インスタンスの基インスタンスの基礎を徹底解説
SQL Server(MS SQL Server)とは? SQL Serverは、Microsoftが開発したリレーショナルデータベース管理システム(RDBMS)です。従来のRDBMSの枠組みにとどまらず、オブジェクト指向の概念も取り入れたORDBMS(オブジェクトリレーショナルデータベース管理システム)としての側面も併せ持っています。主な特徴は以下の通りです。 Microsoftが開発したRDBMSベースのデータベースソフトウェアである ORDBMS(オブジェクトリレーショナルデータベース管理システム)としても機能する 特定のプラットフォームに依存しない独立した環境で動作する コマンドライ