0

独自のユーザーを作成するアプリケーションがあり、これらのユーザーはアプリケーションにログインしてデータベースにアクセスします。ユーザーはどのように作成する必要がありますか?ユーザー テーブルを用意する必要がありますか?それともデータベース レベルのユーザーを作成する必要がありますか?

4

1 に答える 1

1

これはかなり自由形式の質問です。たとえば、Webベースのアプリケーションなのか、デスクトップベースのアプリケーションなのかは省略しましたが、ここにいくつかの考えがあります。

何人のユーザーが話しているのか、どのような離職率なのか。数千?数百万?十?数や売上高がどんどん大きくなるにつれて、ユーザーテーブルはどんどん良く見えます。たとえば、Amazonでは、データベースサーバーのユーザーではない場合でも、独自のショッピングカートを作成できます。

データベースレベルのユーザーがいる会社の内部のデータベースの場合、通常はより理にかなっています。これにより、アプリケーションでセキュリティサブシステム全体を定義する必要がなくなり、Microsoftおよび世界中の何百万ものユーザーによって脆弱性がすでに対処されていることが保証されます。

データベース内にユーザーテーブルを作成することは、前もってはるかに簡単です。ただし、構築する必要のあるビジネスルールとセキュリティサブシステムに多くの作業が必要になります。(それが作成する言及された脆弱性に加えて)

一方、データベースのユーザーとロールの活用は、前もってより複雑になる可能性があります(アプリケーション内からそれを行う場合)。tsql、システムストアドプロシージャ、SMOなどに慣れている人が必要です。ただし、ロール、ユーザー、グループ、権限などの管理が長期的にははるかに簡単になり、必要に応じてアプリケーションの外部ですべてを管理できるという利点もあります。

いずれにせよ、アプリケーションは接続文字列をどのように使用するかを理解する必要があります。データベースレベルのユーザールートでは、接続文字列が各ユーザーに固有である必要があります。Windows認証でドメインアカウントを使用することを計画している場合を除いて、これは私の意見では可能な限り行う方法です。

于 2012-10-12T21:30:26.067 に答える