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

SQL Serverでログインを検索・一覧表示する方法

SQL Serverで作成済みのすべてのログインアカウントと、その詳細情報を一括で取得できるクエリはあるのでしょうか。実は、SQL Serverには「sys.sql_logins」という仮想カタログ(ビュー、またはシステムテーブル)が標準で用意されています。このビューに対してクエリを実行すれば、SQL Server上に存在するすべてのログインとその詳細情報を簡単に確認できます。

すべてのログインを取得する基本クエリ

SQL Server内のすべてのログインアカウントを取得するには、次のコマンドを実行します。

SELECT *
FROM master.sys.sql_logins;

sys.sql_loginsビューの主な列

sys.sql_loginsビューには、以下の列が含まれています。

列名説明
nameCREATE LOGINコマンドで指定したログイン名。
principal_id数値型のID。
sidCREATE LOGINコマンドで指定された一意のセキュリティ識別子(SID)。
typeプリンシパルの種類を示すコード。
type_descプリンシパルの種類の説明文。
is_disabled0または1。ログインが無効化されているかどうかを示します。
create_dateCREATE LOGINコマンドでログインを作成した日時。
modify_dateALTER LOGINコマンドによって最後に変更された日時。
default_database_nameCREATE LOGINまたはALTER LOGINコマンドで指定された既定のデータベース。
default_language_nameCREATE LOGINまたはALTER LOGINコマンドで指定された既定の言語。
credential_idCREATE LOGINまたはALTER LOGINコマンドで関連付けられた資格情報(Credential)のID。
is_policy_checked0または1。CREATE LOGINまたはALTER LOGINコマンドで指定された、Windowsパスワードポリシー適用の可否。
is_expiration_checked0または1。CREATE LOGINまたはALTER LOGINコマンドで指定された、パスワード有効期限チェックの可否。
password_hashパスワードのハッシュ値。

type列に格納される値

  1. S = SQL Serverユーザー(SQL認証ログイン)
  2. U = Windowsユーザー
  3. G = Windowsグループ
  4. A = アプリケーションロール
  5. R = データベースロール
  6. C = 証明書にマッピングされたログイン
  7. K = 非対称キーにマッピングされたログイン

type_desc列に格納される値

  1. SQL_USER
  2. WINDOWS_USER
  3. WINDOWS_GROUP
  4. APPLICATION_ROLE
  5. DATABASE_ROLE
  6. CERTIFICATE_MAPPED_USER
  7. ASYMMETRIC_KEY_MAPPED_USER

旧バージョン(SQL Server 2000)との互換性

古いSQL Serverのバージョンでは、SQL Server 2000互換のシステムテーブルである「sys.syslogins」を使用して、すべてのログイン情報を取得できます。その場合は、以下のコマンドを実行してください。

SELECT *
FROM master.sys.syslogins;

なお、sys.sysloginsは後方互換性のために残されているシステムテーブルであり、新しい環境では前述のsys.sql_loginsの利用が推奨されます。

システムテーブルsys.syslogins(SQL Server 2000)には、以下の列が含まれています。

列名説明
sidCREATE LOGINコマンドで指定された一意のセキュリティ識別子。
status現在使用されていない列。
createdateCREATE LOGINコマンドでログインを作成した日時。
updatedateALTER LOGINコマンドによって最後に更新された日時。
accdate使用されていません。
totcpu使用されていません。
totio使用されていません。
spacelimit使用されていません。
timelimit使用されていません。
resultlimit使用されていません。
nameCREATE LOGINコマンドで指定したログイン名。
dbname既定のデータベース。
language既定の言語。
isntuser0または1。Windowsユーザーアカウントかどうか。
isntgroup0または1。Windowsグループかどうか。
isntname0または1。WindowsユーザーまたはWindowsグループかどうか。
sysadmin0または1。sysadmin固定サーバーロールのメンバーかどうか。
securityadmin0または1。securityadmin固定サーバーロールのメンバーかどうか。
serveradmin0または1。serveradmin固定サーバーロールのメンバーかどうか。
setupadmin0または1。setupadmin固定サーバーロールのメンバーかどうか。
processadmin0または1。processadmin固定サーバーロールのメンバーかどうか。
diskadmin0または1。diskadmin固定サーバーロールのメンバーかどうか。
dbcreator0または1。dbcreator固定サーバーロールのメンバーかどうか。
bulkadmin0または1。bulkadmin固定サーバーロールのメンバーかどうか。
loginnameCREATE LOGINコマンドで指定したログイン名。
  1. SQL ServerのSELECT文の使い方を徹底解説!基本構文と実践例まとめ

    このチュートリアルでは、SQL Server(T-SQL)におけるSELECT文の使い方を、構文と具体的なサンプルコードとともにわかりやすく解説します。 SELECTは、SQL Serverデータベース内の1つまたは複数のテーブルからデータを取得するために使用される、最も基本的かつ重要なコマンドです。 SELECT文の基本構文 最もシンプルな形式では、SELECT文の構文は以下の通りです。 SELECT 式 FROM テーブル [WHERE 条件]; 一方、すべての機能を含んだ完全な形式のSELECT文は次のように記述します。 SELECT [ALL | DISTINCT] [TOP (先頭

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

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