- - PR -
SQL Server2000でログインしているユーザがアクセスできるデータベースの一覧を取得したい
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2005-04-06 11:22
こんにちは
件名のとおり、SQL Server2000+ADO.NET環境で、ログインしているユーザがアクセス できるデータベースの一覧を取得したいのですが、どのシステムテーブルにアクセス すればよろしいのでしょうか? masterデータベースの select * from sysdatabases で、データベースの取得はでき ますが、この方法だとログインしているユーザが使用できるかは分からないようです。 ご存知の方おられませんでしょうか?よろしくお願いします。 |
|
投稿日時: 2005-04-06 11:41
今日は。
どういう風に書けば良いのかは別として。 データベースを指定して ストアドプロシージャで「sp_table〜」のどれかを実行すれば取れるかと思いますので 実験してみて下さいな。 |
|
投稿日時: 2005-04-06 11:49
EXEC sp_helplogins 'ユーザ名'
|
|
投稿日時: 2005-04-06 11:50
↓これとか!?
http://www.sqlpassj.org/bunkakai/security/tips/050224.aspx (リンク先を詳しく見てないので...外れの場合はご容赦) |
|
投稿日時: 2005-04-06 17:54
こんにちは
返答ありがとうございます。 sp_helploginsはsaならいいのですが、自分で作ったログイン名だと、アクセス権限が なくて実行できません。 自分で作ったログイン名でログインし、特にアクセス権限を付与しなくても、その ログイン自身で使用できるデータベースを取得できないものでしょうか。 クエリアナライザのGUIでは、ログインしたユーザで使用できるデータベースの一覧が GUI上部のコンボボックスに出てきます。あれと同じことをやってみたいのですが・・・ [ メッセージ編集済み 編集者: maru 編集日時 2005-04-06 17:57 ] |
|
投稿日時: 2005-04-06 18:15
松本@初投稿です。
>クエリアナライザのGUIでは、ログインしたユーザで使用できる >データベースの一覧が GUI上部のコンボボックスに出てきます。 >あれと同じことをやってみたいのですが・ > この機能は、アンドキュメンテッドな master.dbo.sp_MShasdbaccess を使ってるみたいですね。 内部的には HAS_DBACCESS 関数を使ってみたいです。 |
|
投稿日時: 2005-04-06 18:16
お騒がせしました。
プロファイラでSQLをモニタリングし、クエリアナライザの上部のデータベース一覧の コンボをクリックすると sp_MShasdbaccess を実行していました。 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/tsqlref/ts_sp_ma-mz_1six.asp これが使えそうです。 |
1
