0

Microsoft SQL Server 2000 に接続する Python アプリケーションを持っています。アプリケーションは起動時に更新をチェックし、自動的に適用します。すぐに、データベース スキーマの変更も処理する必要があります。私の調査によると、現在のデータベースのベースライン スクリプトを作成してから、スキーマの変更ごとに新しいスクリプトを作成する方法が適しているようです。そうすれば、どのバージョンのデータベースも最新バージョンに更新できます。

私の質問は、これらの更新のアクセス許可をどのように管理すればよいですか? 現在、約 50 人が私のアプリケーションを使用しており、そのほとんどが読み取り専用アクセス権を持っています。理想的には、すべてのユーザーがテーブルの作成や変更などの必要な変更を実行できるようにして、新しい更新を最初に受け取った人が新しいスキーマの変更を適用できるようにしたいと考えています。そうしないと、適切な権限を持つ誰かがデータベースを更新するまで、アプリケーションをまったく使用できない可能性があります。

すべてのユーザーがスキーマを更新できる場合、問題が発生することがわかります。彼らが SQL Server Management Studio にログインして、テーブルの削除などの問題を引き起こすのを防ぐにはどうすればよいでしょうか?

現在、このアプリケーションは 1 か所にしかデプロイされていないため、スキーマの変更を手動で簡単に管理できます。しかし、より多くの地域に展開する計画があり、これらすべてが自動的に処理されるようにしたいと考えています.

4

1 に答える 1

0

ユーザーの管理者権限を制限したいが、同時に管理者のアクティビティを実行させたい...ちょっとした「鶏と卵」の問題:-)

オプション 1: webapp を使用する

プログラムを Web アプリケーションとして実行するように変換します。

少し抜本的ですが、メンテナンスははるかに簡単です。ユーザーは、Python、集中アップグレード、共有接続プールをデータベースにインストールする必要がなくなりました。

これにより、データベース認証の問題が解決されます。ユーザーは、データベースではなく、Web アプリケーションに対して自分自身を認証します。

データベース スキーマの管理には、liquibase を使用しています。アプリの新しいバージョンがデプロイされたときにデータベースを自動的にアップグレードできるサーブレット リスナーがあります。(Liquibase には、Python などの代替テクノロジで使用するためのコマンドライン インターフェイスもあります)。

オプション 2: 管理者パスワードを暗号化する

管理者パスワードを暗号化し、企業の Web サーバーから取得できるテキスト ファイルとして使用できるようにして、ユーザー アプリケーションが起動時にそれをダウンロードできるようにします。

このソリューションにはセキュリティ上の問題があります....管理者パスワードを復号化するには、Python アプリケーションに共有シークレットを組み込む必要があります....これは、あいまいさによるセキュリティです。

于 2011-10-08T09:34:32.220 に答える