2010-12-08 6 views
0

SQL Expressバックエンド(ローカルマシン上にある)を使用するwinformsアプリケーションがあります。 ユーザーが特定の場所に新しいデータベースを作成するタスクを実行するユーザーのさまざまな問題が発生しましたが、「NT Authority \ Network Service」には指定された場所に対して十分な権限がありません。SQLSERVRプロセスに特定のフォルダへの書き込みアクセスがあるかどうかを確認する(C#)

実行時にSQLSERVRを実行しているユーザーが特定のフォルダにアクセスできるかどうかチェックしたいと思います。

SQLSERVRプロセスのユーザー/ SIDを決定するためにWMIコードが実行されています。私の次のステップは、ユーザーのWindowsIdentity/WindowsPrincipalを取得して、ファイルアクセスルールを照会できるようにすることです。

しかし、私は固まっています - 私はすべてのユーザー/ドメイン/ SIDを持っていると、確実にWindowsIdentityを取得できますか?これにはうってつけのコンストラクタがないようですね。

答えて

0

別の(より簡単な)方法をお勧めしますか?サービス/ユーザーアカウントを偽装し、クイック一時ファイルを作成してから削除してください。 ファイルを書き込んだり(削除しても)、SQL Serverで同じことができることを確認できます。

はここでNETWORK SERVICEアカウントを偽装について語る記事だ:http://geek.hubkey.com/2008/02/impersonating-built-in-service-account.html

1

あなたはトークンを取得するためのLogonUserをのPInvokeする必要があります。私はそれがうまくいくことを真剣に疑っています。これらのサービスアカウントは非常に特権があります。

これは面倒な価値があるかどうか尋ねてください。たぶん警告が望ましいかもしれませんが、問題を解決するためにあなた自身ができることは何もありません。管理者は実際に問題を解決する必要があります。あなたが得る例外から良い診断を得ることに集中してください。

関連する問題