1

私のSQL2008には、「db_datareader」、「db_datawriter」、および「db_ddladmin」DBロールのユーザーがいますが、SSMSでテーブルを変更しようとすると、次のメッセージが表示されます。

データベース所有者またはシステム管理者としてログインしていません。所有していないテーブルへの変更を保存できない場合があります。

もちろん、そのようなメッセージは避けたいのですが、今までは方法を見つけていました...したがって、ユーザーを「db_owner」ロールに追加してユーザーを変更しようとしましたが、もちろん上記のメッセージはありません.

私の質問は:

  • ユーザーを「db_owner」ロールに保持することは可能ですか? DBレベルでセキュリティ保護可能な「任意のユーザーを変更」しようとしましたが、うまくいきません...

ありがとう!

4

4 に答える 4

1

db_ddladmin固定データベース ロールのメンバーは、データベースで任意のデータ定義言語 (DDL) コマンドを実行できます。おそらくSSMSからの警告です。ユーザーを作成してみて、いくつかのテーブルを変更してみてください

于 2010-06-07T13:57:03.107 に答える
1

ユーザーが db_ddladmin の一部である場合、問題にはなりません。これは単なる警告です

于 2010-06-07T13:59:13.270 に答える
1

私の理解では、db_owner 権限を持つすべてのユーザーは、データベースの削除を含め、データベースに対して何でもできるということです。確かに、これは SQL 2005 まで真実でした。SQL 2008 でこれが変わったということを示唆するものは何も聞いたことがありません。

于 2010-06-07T13:58:28.683 に答える
0

これらは確かに警告であり、SSMS でそのタイプの警告を無効にする方法はありません。

2008R2 では、"db_datareader"、"db_datawriter"、および "db_ddladmin" を持つユーザーは、右クリックしてデザインを選択して SSMS で編集できるようにするには、ビュー定義を付与する必要があります。ビュー定義を許可していない場合、デザイン ビューは (警告付きで) 読み取り専用で開きます。

参照: MSFT Connect のバグ

Connect の回避策で説明されているように、特定のユーザー アカウントに対してビュー定義権限を割り当てるよりも、役割を通じて ddladmin ユーザーにビュー定義権限を割り当てる方が発見しやすいように思えます。これにより、db_definitionviewer データベース ロールが追加されます。

USE <DB Name>;
CREATE ROLE db_definitionviewer;
GRANT VIEW DEFINITION TO db_definitionviewer;
EXEC sp_addrolemember 'db_definitionviewer', '<DOMAIN\group> | <DOMAIN\User>';
于 2010-11-27T00:41:33.657 に答える