sql >> データベース >  >> RDS >> Sqlserver

SQL Server認証とWindows認証:どちらをいつ使用するか

    認証は、セキュリティ戦略の重要な要素です。今日は、SQL Server認証と、SQL Server環境を保護するために不可欠な方法、およびWindows認証が果たす役割について説明します。

    接続の確立

    それはすべて接続から始まります。データベース接続を正常に確立するには、クライアントまたはアプリケーションに次の情報が必要です。

    • SQLServerの完全修飾ドメイン名
    • インスタンス名
    • ポート番号
    • 認証用の資格情報(ユーザー名とパスワード)

    たとえば、オンラインバンキングを使用するとします。アカウントにアクセスするには、認証のためにクレデンシャルを入力する必要があります。銀行は、有効なクレデンシャルを提供するとあなたを識別し、確認時にそのサービスへのアクセスを許可します。

    同様に、SQL Serverにログインする場合、ユーザーは有効な資格情報を指定して、SQL Serverが自分のIDを認証し、適切なアクセスを許可できるようにする必要があります。

    SQL Serverは、サーバー認証の2つのモードを提供します。

    • Windows認証
    • SQL ServerおよびWindows認証モード(混合モード)

    これらの認証方法は、SQL Serverのインストール中に定義することも、後で再起動して変更することもできます。データベース管理者は、これらの認証方法の違いを理解し、組織の特定の要件に従ってそれらを実装することが重要です。

    SQLServer認証とWindows認証の両方の長所と短所を理解するためにさらに掘り下げてみましょう。

    SQLServer認証の概要

    データベース管理者はSQLログインを作成し、ユーザーがSQLServerに対して自分自身を認証するための適切なアクセス許可を提供します。以下に示すように、ユーザーはSQLServerに接続するときにログインとパスワードを指定する必要があります。

    ユーザーの資格情報は、マスターデータベースに保存されている情報を通じて検証されます。 SQLServerログインに対して次のポリシーを適用できます。

    • パスワードポリシーを適用する :管理者はこのオプションをチェックして、SQLServerログイン用のWindowsパスワードポリシーを実装できます。パスワードの長さと複雑さの指定が含まれます。
    • パスワードの有効期限を強制する :パスワードの最大有効期間を強制できます。パスワードの有効期限が切れ、年齢基準で定義されているように変更する必要があります。
    • ユーザーは次回のログイン時にパスワードを変更する必要があります :管理者は、SQLログインの作成時にパスワードを割り当てます。ユーザーが自分の資格情報を使用してログインしたら、新しいパスワードを指定する必要があります。管理者はこの新しいパスワードを認識しません。

    注:これらの構成はすべて、個々のSQLログインレベルにあります。したがって、複数のSQLログインを作成する必要がある場合は、必要なポリシーを使用して各アカウントを構成する必要があります。

    SQL認証のみを有効にすることはできません。これを有効にするには、Windows認証とSQL認証の両方を含む混合認証オプションを使用します。

    SQLServer認証のデメリット

    SQLServer認証のみを使用することにはかなりの制限と欠点があります。

    • ユーザーは、SQLログイン資格情報を覚えて、SQLServerに接続するたびに接続文字列でそれらを提供する必要があります。複数のSQLServerがある場合、ユーザーが各インスタンスのパスワードを追跡するのが難しい場合があります。
    • SQL Serverは、パスワードを暗号化(ハッシュ)形式でマスターデータベースに保存します。ハッカーはデータベースにアクセスして情報を盗むことができます。これらの暗号化されたクレデンシャルはネットワーク経由で渡す必要があるため、ユーザーのクレデンシャルが盗まれる可能性が高くなります。
    • SQL Server認証ログインで追加の(カスタマイズされた)アカウントポリシーを実装することはできません。
    • データベース管理者のログイン管理のタスクが増えます。データベース管理者には、すべてのインスタンスにわたるログインを管理するための中央管理コンソールがありません。

    500以上のSQLインスタンスがあり、ユーザーがこれらすべてのインスタンスへのアクセスを必要としているとします。この場合、データベース管理者が各インスタンスに接続してユーザーログインを作成するのは面倒な作業になります。同様に、ある人が組織を離れた場合、データベース管理者はその人のSQLログインを見つけて、これらすべてのインスタンスから削除する必要があります。これは非常に時間のかかるプロセスになる可能性があります。

    • データベースを別のインスタンスに移動すると、孤立したユーザーの問題が発生する可能性があります。また、新しいインスタンスのマスターデータベースとユーザーデータベースのSIDが一致しないことが原因で発生する可能性があります。
    • SQLログインごとにセキュリティポリシーを管理する必要があります。組織内のすべてのアカウントにユニバーサルポリシーを定義することはできません。データベースのフットプリントが大きい場合、個々のログインごとにポリシーを定義するのは骨の折れる作業です。

    SQLServer認証のベストユースケース

    • Windows(AD)認証をサポートしていない場合、古いアプリケーションやサードパーティソフトウェアがデータベースに接続するのに役立ちます。
    • 信頼できないドメインのユーザーがSQLServerに接続する必要がある場合があります。この場合、アプリケーションは接続文字列でSQLログインを指定し、データベースに接続できます。
    • Active Directory(AD)グループの一部ではないスタンドアロンSQLインスタンスを接続するため。
    • SQLServerがユーザーが独自のIDを作成するWebアプリケーションをサポートするのに役立ちます。
    • 管理者は、ActiveDirectory認証を使用してSQLServerに接続するための共通IDを共有する場合があります。この接続プールは良い習慣ではありません。この場合、ユーザーごとに個別のログインを作成し、ユーザーの資格情報を使用してデータベースに接続できます。
    • デフォルトでは、SQLデータベースをクラウドに実装する場合(つまり、Azure SQLDatabaseまたはAWSRDS)、SQLServer認証用のログイン資格情報が提供されます。後で、必要に応じて、ADベースの認証を構成できます。
    • これを使用して、LinuxやmacOSなどのクロスオペレーティングシステムから接続できます。

    Windows認証の概要

    Windows認証では、ユーザーは最初にActiveDirectory内で自分自身を認証する必要があります。 SQL Serverは、OSのWindowsプリンシパルトークンを介してユーザーを認証します。これにより、SQLServerはID検証のためにパスワードを要求しません。したがって、Windowsは認証のためにユーザーのIDを確認します。 SQL Serverは、Windows認証にクレデンシャルを保存しません。 Windows認証を使用した接続は、信頼できる接続または統合接続と呼ばれます。

    注:SQL Serverをインストールする場合、Windows認証がデフォルトの認証方法です。

    Windows認証の利点

    • Windows認証はSQLServerに接続するための安全な方法であり、Kerberos認証プロトコルを使用した認証目的でトークンとSPNを使用します。したがって、ネットワークを介してパスワードを送信することはなく、ネットワークを介してパスワードを盗むことを防ぎます。
    • SQLServerはユーザーの資格情報を保存しません。
    • Kerberosセキュリティプロトコルを使用しており、複雑なパスワード、アカウントのロックアウト、パスワードの有効期限などのパスワードポリシーを実装できます。このパスワードポリシーは、すべてのサーバーにわたって組織レベルで実装できます。したがって、SQL Server認証のように個々のログインレベルではなく、組織レベルでユーザーセキュリティポリシーを制御できます。
    • Windows認証により、職務の分離が可能になります。 Active Directory(AD)チームがADユーザーを管理します。一方、DBAはSQLインスタンスにADユーザーを追加し、適切な権限を提供します。
    • Active Directoryは、Windowsグループの作成に役立ちます。 ADチームは、ADグループに同等のアクセスを必要とする複数の人を追加できます。後で、SQLインスタンスにグループを追加し、グループレベルでアクセス許可を提供できます。したがって、新しい人がADグループに参加すると、このADグループが存在するサーバー全体でデータベースアクセスが自動的に許可されます。同様に、ユーザーが組織から移動し、IDがこれらのADグループから削除されると、ユーザーはデータベースにアクセスできなくなります。

    Windows認証のデメリット

    • SQL ServerにWindows認証のみを使用する場合は、すべてのユーザーがActiveDirectoryの一部である必要があります。
    • DBAはADログインとグループを制御できません。
    • ADグループのメンバーシップはDBAに認識されていません。ユーザーがADグループに追加または削除されても、通知は届きません。

    概要

    このブログ投稿では、SQLServer認証とWindows認証の主要コンポーネントの概要を説明しています。これらの認証方法の違いを理解して、ビジネスや状況に最適な方法を決定するのに役立つことを願っています。

    SQL Server認証は、SQLServerと同じマシンまたはリモート接続で使用できます。 Active Directory環境で作業している場合は、Windows認証を使用することをお勧めします。 Active Directory以外の環境で作業している場合は、データベース接続にSQLServer認証を利用できます。

    Windows認証は、SQLServerでログインを管理するためのセキュリティと柔軟性を提供します。したがって、可能な限り使用する必要があります。


    1. ArrayField内のDjangoJSONField

    2. MySQLで特殊文字をエスケープするにはどうすればよいですか?

    3. nodejs mysqlエラー:接続が失われましたサーバーが接続を閉じました

    4. SQLServerデータベースサイズを選択します