科学の箱

科学・IT・登山の話題

SQLServer

ユーザーマッピングをSQLで取り出す方法

投稿日:

SQLサーバーではログインユーザーをデータベースユーザーにマッピングする。データベース移行時にはあらかじめログインユーザーを移行先で作成するか、移行後にマップしなおす必要がある。

この時にログインユーザーがどのデータベースにマッピングしているかを確認する必要がある。画面としては下記のように取得ができるが、SQLで取得できればテキストで保存できる。

usermapping

以下のようなSQLで一覧を取得できる。

 CREATE TABLE #tempww (
    LoginName nvarchar(max),
    DBname nvarchar(max),
    Username nvarchar(max), 
    AliasName nvarchar(max)
)

INSERT INTO #tempww 
EXEC master..sp_msloginmappings

-- display results
SELECT * 
FROM   #tempww 
ORDER BY dbname, username
-- cleanup
DROP TABLE #tempww

データはSP経由で取得するので一時テーブルに保管している。ここでは一時テーブルを削除しているがセッションが切れれば自動で削除される。またこのSQLの実行にはsysadmin権限が必要となる。

参考

メタ情報

inarticle



メタ情報

inarticle



-SQLServer
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

一時テーブルを作成する方法

SQLサーバーでは一時的にデータを保管したい場合にはtempdbが利用できる。このtempdbを利用は名前で指定できる。 ローカルユーザー一時テーブル このテーブルはユーザーのセッションが切れるときに …

no image

SQL文を実行前に正しいか確認する方法

SQL文を実行する前に句があっているかを確認したいことがある。 F5を押すとSQL文が実行されるCTRL + F5でSQLのパースだけされ、実行はされない。この時文に間違いがあれば指摘される。 &nb …

no image

Filestreamについてまとめておく

Filestreamを使うための準備(サーバー側) 設定についてはこちらでまとまっている。 Different ways to enable FILESTREAM feature of SQL Ser …

no image

databaseでmdf, ldfファイルが削除されない件

データベースがオフラインの時にdrop database[DATABASE_NAME]をすると物理ファイルは削除されないらしい。 *Dropping a database deletes the da …

no image

databaseのロックを取得できないときの手順

データベースのロックが取得できないときには、何らかのプロセスがロックをかけている。 データベースにかかっているロックからプロセスを取得する USE master  SELECT * FROM sys. …

2014年11月
« 10月   12月 »
 12
3456789
10111213141516
17181920212223
24252627282930

side bar top



アーカイブ

カテゴリー