0

構成ファイルを読み取り、接続文字列を取得するC#アプリを作成しました。接続文字列ごとに、ストアドプロシージャのリストを読み取り、さらに処理します。今、私はいくつかの許可の問題に直面しています。アプリを開発するとき、私はdboレベルのユーザーとの接続文字列を使用していました。実際の接続文字列は、データリーダーとデータライターの権限のみを持つSQLユーザー向けですが、実行すると

select user_name(uid) as owner, name from dbo.sysobjects where type='P' order by name asc

そのようなユーザーを使用してprocのリストを取得するために、クエリはレコードを返しません(ただし、dboとして実行するとprocを返します)

セキュリティ上の理由から、接続文字列でユーザーに追加のアクセス許可を与えたくないので、私の質問は、データリーダー/データライターのアクセス許可しか持たないユーザーがストアドプロシージャのリストを取得するにはどうすればよいか、それが不可能な場合は最小限のものを取得する方法です。ユーザーがその情報にアクセスできる必要がある権限?

SQLServer2008を使用しています

4

3 に答える 3

1

アプリケーションが所有する資格情報に関連付けられたストアド プロシージャを作成します。このストアド プロシージャは、User パラメータを受け取り、sysobjects にクエリを実行して、利用可能なプロシージャを返します。これらのプロシージャのその後の実行は、あなたが言及した特定の接続文字列によって行うことができます。

于 2010-02-05T19:57:10.797 に答える
0

このスクリプトを使用します。

select user_name(schema_id) as owner, name from sys.procedures
于 2010-02-07T05:43:48.597 に答える
0

実際に私はそれを理解しました-リストしたい各ストアドプロシージャへのアクセス許可をユーザーに付与する必要があります

于 2010-02-09T19:44:53.067 に答える