これを実行しようとすると、次のエラー メッセージが表示されます。
DatabaseRole 'db_denydatawriter' のメンバーを追加できませんでした。(Microsoft.SqlServer.Smo)
追加情報:
Transact-SQL ステートメントまたはバッチの実行中に例外が発生しました。(Microsoft.SqlServer.ConnectionInfo)
予約済みのユーザーまたはロール名 'dbo' は使用できません。(Microsoft SQL Server、エラー: 15405)
「凍結」したままにしておく必要があるデータベースがあります。 データベースの所有権を維持したいが、 (dbo として) 自分自身が誤ってデータを変更するのを防ぎたい。これを達成する別の方法はありますか?
編集:以下の行に対処するために、新しい質問を開くことにしました:
データベース内のデータは凍結されたままにする必要があります。ただし、構造は変更される可能性があります。
データベースは実際には複数のデータベースです。これらは基本的に、半年ごとに作成される本番データベースのスナップショットです。ユーザーは、フロントエンド GUI からバックエンド データベースを切り替えることで、履歴データを表示できます。ただし、現在のデータベースのテーブルに新しいフィールドが追加されることがあります。フロントエンドがこれらのフィールドの存在を予期している場合、これは問題を引き起こす可能性があります。現在の解決策は、フィールドをその場で追加することです (ユーザーには、db_datareader、db_denydatawriter、および db_ddladmin ロールがあります)。これが意味することは、データベースを読み取り専用にできないということです。これは、テーブル構造への変更を妨げるためです。