0

次のように SMO を使用して SQL Server Express データベースを作成しようとしています。

Database db = new Database(server, dataSource);
...
db.Create();

データベースを問題なく使用できます。しかし、誰かがデータベースをコピーしようとすると、ファイル許可エラーが発生します。Windows エクスプローラーの [セキュリティ] タブの下を見ると、アクセス許可を持っているのは私だけです。単純にファイルのコピーを作成すると、コピーによってすべてのユーザーにアクセス許可が付与されます。

では、Create() で全員に許可を与えるにはどうすればよいでしょうか? 作成されたファイルはディレクトリのアクセス許可を継承すると思いますが、明らかにそうではありません。ファイルのアクセス許可を自分で設定できることはわかっていますが、Create() が特別なアクセス許可を与えている理由を理解しようとしています。

4

1 に答える 1

1

基本的には、「パブリック」ロールへのアクセスを追加するだけでよいと思います。自分で試したことはありませんが、次のことを試してください。

Database db = new Database(server, dataSource);
db.Roles.Add(new DatabaseRole(db, "public"));
db.Create();

それは動作しますか?同僚は今データベースにアクセスできますか?

マーク

于 2009-07-17T19:22:56.117 に答える