何年もの間、Windows XP(32ビット)は私の開発デスクトップ(個人プロジェクト)でした。私は多くの趣味のプロジェクトを開発し、それをオープンソースとして配布しており、Vistaでのチェックについて心配したり悩んだりしたことはありません(Vistaを1週間しか使用していません)。しかし、私のユーザーの誰も、Vistaの私のアプリについてあまり不満を言っていません。
今、私はWindows 7 64ビットOS(RTM)に移行しました。VisualStudio2008を使用しています。販売を計画しているアプリケーションを開発しています。
私はデータストレージにSQLiteDBを使用していますが、ラップトップに最初のバージョンをインストールすることを決定するまで、すべてがうまくいきました。ブーム!アプリが期待どおりに機能しませんでした。私が管理者ユーザーであるにもかかわらず、アプリがDBに書き込めないことがわかりました(読み取り専用と表示されていました)。
注:Windows 7では、ログインしているユーザーが管理者権限を持っている場合でも、プロセス(場合によってはドライブ間のコピー貼り付け)に管理者アクセスが必要かどうかの確認を求められます。これが新しいかどうかわからない。これが古いものであるかどうかは無視してください。
「管理者として実行」としてアプリを実行すると、正常に機能しました。
app.manifestファイルの設定は次のとおりです。
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
次のいずれかに変更できることを理解しています
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
私の質問は、設定を「requireAdministrator」に変更した場合、管理者権限を持たない通常のユーザーに影響しますか?
DBを通常のユーザーが書き込み可能にするにはどうすればよいですか?
この設定はWindowsXPユーザーにどのように影響しますか?
誰もが問題なくDBを更新できるようにするための最良の構成は何ですか?
このようなセキュリティの問題に直面するのはこれが初めてです。何かアドバイスはありますか?
注:このアプリは、考えられるすべてのOSでテストします。Vista 32ビットOS(管理者ユーザー)でテストを実行しましたが、正常に機能しました。しかし、Windows7での私の経験は私を混乱させました。