1. ホーム
  2. sql

[解決済み] SQL Server スクリプトによる新規ユーザー作成

2022-09-20 20:17:36

質問

を作成するスクリプトを書きたい。 admin ユーザ ( abcd パスワード) を SQL Server Express で使用することができます。 また、私はこのユーザー admin に完全な権限を与えたいと思います。

どのように解決するのですか?

ご質問の内容から察するに、「em」と「em」の違いについて少し混乱されているのではないかと思います。 ユーザー ログイン . A ログイン は、SQL Server 全体におけるアカウント、つまり、サーバーにログインすることができ、パスワードを持っている人です。 A ユーザ ログイン であり、特定のデータベースにアクセスすることができます。

を作成する ログイン を作成するのは簡単ですが、(当然) ユーザー アカウントを作成する前に行わなければなりません。

CREATE LOGIN NewAdminName WITH PASSWORD = 'ABCD'
GO

ここでは ユーザー を使用して、db_owner 権限を持つ ログイン を宣言してください。

Use YourDatabase;
GO

IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N'NewAdminName')
BEGIN
    CREATE USER [NewAdminName] FOR LOGIN [NewAdminName]
    EXEC sp_addrolemember N'db_owner', N'NewAdminName'
END;
GO

今すぐ ログイン は、上記で説明したよりももう少し流動的です。 たとえば、(ほとんどの SQL Server インストールでは)データベースのインストール時に、Windows Administrator アカウント用のログイン アカウントが自動的に作成されます。 ほとんどの状況で、私はデータベースを管理するときにそれを使用します (すべての特権を持ちます)。

しかし、アプリケーションから SQL サーバーにアクセスする場合、サーバーを "Mixed Mode" (Windows と SQL の両方のログイン) に設定し、上記のようにログインを作成したいと思うことでしょう。 そして、アプリケーションに必要な権限に基づいて、そのSQLログインに権限を付与します。 参照 を参照してください。 を参照してください。

UPDATE: Aaronは、ログインアカウントに準備されたロールを割り当てるためにsp_addsrvrolememberを使用することを指摘しています。 これは良いアイデアです - 手動で権限を付与するよりも高速で簡単です。 ググればたくさんのリンクが出てくるでしょう。 しかし、ログインとユーザーの区別はまだ理解しておく必要があります。