Saya bekerja dengan SQL Server 2012. Saya ingin memeriksa apakah ada pengguna sebelum menambahkannya ke database.
Inilah yang telah saya uji:
USE [MyDatabase]
GO
IF NOT EXISTS (SELECT name
FROM [sys].[server_principals]
WHERE name = N'IIS APPPOOL\MyWebApi AppPool')
Begin
CREATE USER [IIS APPPOOL\MyWebApi AppPool]
FOR LOGIN [IIS APPPOOL\MyWebApi AppPool] WITH DEFAULT_SCHEMA=[dbo]
end
ALTER ROLE [db_owner] ADD MEMBER [IIS APPPOOL\MyWebApi AppPool]
GO
Namun, kode SELECT name FROM [sys].[server_principals]
ini tidak kembali jika pengguna itu ada di MyDatabase
.
Bagaimana saya bisa mengecek jika ada pengguna MyDatabase
?
1
Perlu diingat bahwa sys.database_principals berisi peran dan pengguna secara bersamaan, jadi jangan lupa untuk memfilter pengguna. Saya memperbarui kueri terakhir terhadap jawaban yang ditandai saat ini untuk referensi mudah.
—
Moiz Tankiwala