SQL Server
 Computer >> コンピューター >  >> プログラミング >> SQL Server

SQL Serverで作成済みユーザーを検索・一覧表示する方法

SQL Serverで、データベースに作成されたすべてのユーザーを一覧として取得するには、どのようなクエリを実行すればよいのでしょうか。

SQL Serverには「sys.database_principals」というシステムカタログビューが用意されています。このビューに対してクエリを実行すれば、データベースに作成されたすべてのユーザーとその詳細情報を簡単に確認できます。

SQL Server上のすべてのユーザーを取得するには、以下のコマンドを実行します。

SELECT *
FROM master.sys.database_principals;

sys.database_principals の主な列

列名説明
nameCREATE USER コマンドで作成されたユーザー名
principal_idプリンシパルのID(数値)
typeプリンシパルの種類(後述のコード)
type_descプリンシパルの種類の説明
default_schema_nameスキーマが明示されていない場合に使用される既定のスキーマ名
create_dateCREATE USER コマンドによってユーザーが作成された日時
modify_dateユーザーが最後に変更された日時
owning_principal_idこのユーザーを所有するプリンシパルのID
sidCREATE LOGIN コマンドで指定された SID 値
is_fixed_role固定ロールかどうか(0 または 1)
authentication_typeNONE / 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内部使用のみ
nameCREATE USER コマンドで作成されたユーザー名
sidCREATE LOGIN コマンドで指定された SID 値
roles未実装
createdateCREATE USER コマンドによってユーザーが作成された日時
updatedateユーザーが最後に変更された日時
altuid内部使用のみ
password内部使用のみ
gidユーザーに割り当てられたグループID
environ内部使用のみ
hasdbaccessデータベースへのアクセス権の有無(0 または 1)
isloginログイン可能かどうか(0 または 1)
isntnameWindowsアカウントかどうか(0 または 1)
isntgroupWindowsグループかどうか(0 または 1)
isntuserWindowsユーザーかどうか(0 または 1)
issqluserSQL Serverユーザーかどうか(0 または 1)
isaliased別名を持つアカウントかどうか(0 または 1)
issqlroleSQL Serverロールかどうか(0 または 1)
isapproleアプリケーションロールかどうか(0 または 1)

あわせて読みたい関連記事

  1. SQL Serverでログイン(Login)を検索する方法
  2. SQL Serverの CREATE USER コマンドの使い方
  1. 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

  2. MS SQL Serverとは?特徴・主な用途・バージョン履歴・インスタンスの基インスタンスの基礎を徹底解説

    SQL Server(MS SQL Server)とは? SQL Serverは、Microsoftが開発したリレーショナルデータベース管理システム(RDBMS)です。従来のRDBMSの枠組みにとどまらず、オブジェクト指向の概念も取り入れたORDBMS(オブジェクトリレーショナルデータベース管理システム)としての側面も併せ持っています。主な特徴は以下の通りです。 Microsoftが開発したRDBMSベースのデータベースソフトウェアである ORDBMS(オブジェクトリレーショナルデータベース管理システム)としても機能する 特定のプラットフォームに依存しない独立した環境で動作する コマンドライ