1

SQL 認証のみを使用する SQL Server インスタンスがあります。このインスタンスには、2 人のユーザーと 1 つのデータベースしかありません。SA のユーザー名は XX です。別のユーザーがいて、ユーザーが X であるとしましょう。そして、作成スクリプトで、X をサーバー上のユーザーとして追加し、そこにある 1 つのデータベースに追加しています。

XX が SA (SQL Server のインストール時に作成される) である場合、XX をデータベースに明示的にマップする必要はありませんよね?

CREATE USER WITHOUT LOGIN について少し混乱しています。上記が当てはまる場合、ログインせずに1つのデータベースにXを追加するスクリプトを作成する必要がありますか? ログインなしの意味は何ですか? どのような条件下で、誰がそれを行うのでしょうか?

ありがとうございました。

4

1 に答える 1

4

アプリケーション ロールを置き換えるために、ログインのないユーザーが追加されました。
ログインなしのユーザーは、必要な権限を取得するために、なりすましに役立ちます。これにより、ユーザーは独自の資格情報を使用してインスタンスに対して認証できるため、SQL Server はログインに対するアクティビティを監査できるようになり、データベース コンテキストでログインなしのユーザーになりすますことができます。

簡単ななりすましの例:

SELECT SUSER_NAME(), USER_NAME();
GO
CREATE USER loginless_user_4test
    WITHOUT LOGIN
GO
EXECUTE AS USER = 'loginless_user_4test'
GO
SELECT SUSER_NAME(), USER_NAME();
GO
REVERT  --as long as you haven't issued "EXECUTE AS ... WITH NO REVERT", you can go back to previous context
GO
于 2013-06-14T17:14:57.270 に答える