2011-06-27 13 views
3

を否定しました。だから私は受け付けており誤差がある - ODBC ドライバーエラー '80040e09'権限は、私は従来のASPレコードセットを次のクエリを実行しようとしているSQLクエリに

ため

のMicrosoft OLE DBプロバイダー[Microsoft]の[ODBC SQL Serverの ドライバー] [SQL Server] SELECT権限 上の拒否オブジェクト 'A_Permission'、 データベース 'HRWB_3_0'、スキーマ 'dbo'。

権限設定を変更せずにこのクエリを実行する方法を教えてください。どのように私はストアドプロシージャでこれを行うことができますか? (誰かが例をあげてもいいですか)

私はデータベースの設定を変更できません。私は多くのウェブサイトのファイルを見てきました。そして、それは主にストアドプロシージャに依存しているようです。

答えて

5

L_PagePermissionテーブルとA_Permissionテーブルの選択アクセスを、データベースへの接続に使用しているログインに対して許可しない限り、またはそのアクセス権を使用しない限り、そのアクセス許可エラーを回避できません。すでにこれらのテーブルへの選択アクセス権を持っています。

新しいストアドプロシージャを作成し、そのストアドプロシージャにEXECUTEアクセスを許可する方法もあります。いずれの場合に権限を付与するためのSQLは単純です: GRANT EXECUTE ON [procedureName] TO [loginName]

もう一つのアプローチは仕事ができる:ストアドプロシージャへのアクセスをEXECUTE付与するに GRANT SELECT ON [TableName] TO [loginName]

は、テーブルへのSELECTアクセス権限を付与するには明示的なセキュリティの意味は、使用しているログインをそのデータベースのdb_ownerロールに追加することです。それはうまくいくはずですが、あなたが提示するセキュリティリスクに慣れていない限り、推奨されません。

0

テーブルから選択する権限を持っていない場合は、テーブルから選択する権限を持つユーザとしてDBMSに接続する以外の方法はありません。それが権限システムのポイントです。許可されていない人が許可されていないことをしないようにします。