Tutorial: Mengamankan dengan login Microsoft Entra - Azure SQL Managed Instance
Berlaku untuk: Azure SQL Managed Instance
Dalam artikel ini, pelajari cara menggunakan prinsipal server (login) yang didukung oleh MICROSOFT Entra ID (sebelumnya Azure Active Directory) untuk mengamankan Azure SQL Managed Instance.
Dalam tutorial ini, Anda akan mempelajari cara:
- Membuat login Microsoft Entra untuk instans terkelola
- Memberikan izin untuk masuk dalam instans terkelola
- Membuat pengguna Microsoft Entra dari login
- Menetapkan izin kepada pengguna dan mengelola keamanan database
- Menggunakan peniruan identitas dengan pengguna
- Menggunakan kueri lintas database dengan pengguna
- Pelajari tentang fitur keamanan, seperti perlindungan ancaman, audit, masking data, dan enkripsi
Catatan
ID Microsoft Entra sebelumnya dikenal sebagai Azure Active Directory (Azure AD).
Prasyarat
Untuk menyelesaikan tutorial ini, pastikan prasyarat berikut dipenuhi:
- SQL Server Management Studio (SSMS)
- Instans terkelola
- Ikuti artikel ini: Mulai cepat: Membuat instans terkelola
- Dapat mengakses instans terkelola Anda dan menyediakan administrator Microsoft Entra untuk instans terkelola. Untuk mempelajari selengkapnya, lihat:
Membatasi akses
Instans terkelola dapat diakses melalui alamat IP privat. Sama seperti lingkungan SQL Server yang terisolasi, aplikasi atau pengguna memerlukan akses ke jaringan SQL Managed Instance (VNet) sebelum koneksi dapat dibuat. Untuk informasi selengkapnya, lihat Menghubungkan aplikasi Anda ke SQL Managed Instance.
Dimungkinkan juga untuk mengonfigurasi titik akhir layanan pada instans terkelola, yang memungkinkan koneksi publik dengan cara yang sama seperti untuk Azure SQL Database. Untuk informasi selengkapnya, lihat Mengonfigurasi titik akhir publik di Azure SQL Managed Instance.
Membuat login Microsoft Entra menggunakan SSMS
Login Microsoft Entra pertama dapat dibuat oleh admin SQL, atau admin Microsoft Entra yang dibuat selama provisi. Untuk informasi selengkapnya, lihat Menyediakan administrator Microsoft Entra untuk SQL Managed Instance.
Lihat artikel berikut untuk contoh menyambungkan ke SQL Managed Instance:
- Mulai cepat: Mengonfigurasi Azure VM untuk menyambungkan ke SQL Managed Instance
- Mulai cepat: Mengonfigurasi koneksi titik-ke-situs ke SQL Managed Instance dari lokal
Sambungkan ke instans terkelola
sysadmin
Anda dengan login SQL atau admin Microsoft Entra dengan menggunakan SQL Server Management Studio (SSMS).Di Object Explorer, klik kanan server dan pilih Kueri Baru.
Di jendela kueri, gunakan sintaks berikut untuk membuat login untuk akun Microsoft Entra lokal:
USE master GO CREATE LOGIN login_name FROM EXTERNAL PROVIDER GO
Contoh ini membuat info masuk untuk akun nativeuser@aadsqlmi.onmicrosoft.com.
USE master GO CREATE LOGIN [nativeuser@aadsqlmi.onmicrosoft.com] FROM EXTERNAL PROVIDER GO
Pada toolbar, pilih Eksekusi untuk membuat info masuk.
Periksa info masuk yang baru ditambahkan, dengan menjalankan perintah T-SQL berikut:
SELECT * FROM sys.server_principals; GO
Untuk informasi selengkapnya, lihat MEMBUAT INFO MASUK.
Memberikan izin untuk membuat info login
Login yang ada harus memiliki izin yang sesuai atau menjadi bagian dari peran server yang sesuai untuk membuat login Microsoft Entra lainnya.
Login autentikasi SQL
- Jika login adalah prinsipal server berbasis autentikasi SQL, maka harus diberi
sysadmin
peran untuk membuat login untuk akun Microsoft Entra.
Masuk autentikasi Microsoft Entra
- Jika login adalah prinsipal server Microsoft Entra, itu harus ditetapkan peran
sysadmin
atausecurityadmin
server untuk membuat login untuk pengguna, grup, dan aplikasi Microsoft Entra lainnya. - Minimal, izin UBAH LOGIN APA PUN harus diberikan untuk membuat login Microsoft Entra lainnya.
- Secara default, izin standar yang diberikan untuk masuk
master
Microsoft Entra yang baru dibuat adalah: CONNECT SQL dan VIEW ANY DATABASE. - Peran
sysadmin
server dapat diberikan ke banyak login Microsoft Entra dalam instans terkelola.
Untuk menambahkan info masuk ke peran server sysadmin
:
Masuk ke instans terkelola lagi, atau gunakan koneksi yang ada dengan admin Microsoft Entra atau prinsipal SQL yang merupakan
sysadmin
.Di Object Explorer, klik kanan server dan pilih Kueri Baru.
Berikan peran server masuk
sysadmin
Microsoft Entra dengan menggunakan sintaks T-SQL berikut:ALTER SERVER ROLE sysadmin ADD MEMBER login_name GO
Contoh berikut memberikan
sysadmin
peran server ke info masuk nativeuser@aadsqlmi.onmicrosoft.comALTER SERVER ROLE sysadmin ADD MEMBER [nativeuser@aadsqlmi.onmicrosoft.com] GO
Membuat login Microsoft Entra tambahan menggunakan SSMS
Setelah login Microsoft Entra dibuat dan diberikan sysadmin
hak istimewa, login tersebut dapat membuat login tambahan menggunakan klausul FROM EXTERNAL PROVIDER dengan CREATE LOGIN.
Sambungkan ke instans terkelola dengan login Microsoft Entra dengan memilih Sambungkan ke Server di SQL Server Management Studio (SSMS).
- Masukkan nama host SQL Managed Instance Anda di Nama server.
- Untuk Autentikasi, pilih Direktori Aktif - Universal dengan dukungan MFA untuk memunculkan jendela masuk autentikasi multifaktor. Masuk. Untuk informasi selengkapnya, lihat Autentikasi Universal (dukungan SSMS untuk autentikasi multifaktor).
Di Object Explorer, klik kanan server dan pilih Kueri Baru.
Di jendela kueri, gunakan sintaks berikut untuk membuat login untuk akun Microsoft Entra lain:
USE master GO CREATE LOGIN login_name FROM EXTERNAL PROVIDER GO
Contoh ini membuat login untuk pengguna bob@aadsqlmi.netMicrosoft Entra , yang domainnya aadsqlmi.net digabungkan dengan domain Microsoft Entra aadsqlmi.onmicrosoft.com.
Jalankan perintah T-SQL berikut. Akun Microsoft Entra gabungan adalah pengganti SQL Managed Instance untuk login dan pengguna Windows lokal.
USE master GO CREATE LOGIN [bob@aadsqlmi.net] FROM EXTERNAL PROVIDER GO
Membuat database dalam contoh terkelola menggunakan sintaks CREATE DATABASE. Database ini akan digunakan untuk menguji info masuk pengguna di bagian berikutnya.
Di Object Explorer, klik kanan server dan pilih Kueri Baru.
Di jendela kueri, gunakan sintaks berikut untuk membuat database bernama MyMITestDB.
CREATE DATABASE MyMITestDB; GO
Buat login SQL Managed Instance untuk grup di ID Microsoft Entra. Grup harus ada di ID Microsoft Entra sebelum menambahkan login ke SQL Managed Instance. Lihat Membuat grup dasar dan menambahkan anggota menggunakan ID Microsoft Entra. Buat grup grup saya dan tambahkan anggota ke grup ini.
Buka jendela kueri baru di SQL Server Management Studio.
Contoh ini mengasumsikan ada grup yang disebut mygroup di ID Microsoft Entra. Jalankan perintah berikut:
USE master GO CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER GO
Sebagai pengujian, masuk ke instans terkelola dengan info masuk atau grup yang baru dibuat. Buka koneksi baru ke instans terkelola, dan gunakan info masuk baru saat mengautentikasi.
Di Object Explorer, klik kanan server dan pilih Kueri Baru untuk koneksi baru.
Periksa izin server untuk login Microsoft Entra yang baru dibuat dengan menjalankan perintah berikut:
SELECT * FROM sys.fn_my_permissions (NULL, 'DATABASE') GO
Dukungan Azure SQL terhadap perwakilan Microsoft Entra saat pengguna dan login diperluas ke pengguna tamu internal dan tamu eksternal Microsoft Entra External ID . Pengguna tamu, baik secara individual maupun sebagai bagian dari grup, dapat digunakan sama dengan pengguna Microsoft Entra lainnya di Azure SQL. Jika Anda ingin pengguna tamu dapat membuat login server Microsoft Entra atau pengguna database lainnya, mereka harus memiliki izin untuk membaca identitas lain di direktori Microsoft Entra. Izin ini dikonfigurasi pada tingkat direktori. Untuk informasi selengkapnya, lihat izin akses tamu di ID Microsoft Entra.
Membuat pengguna Microsoft Entra dari login Microsoft Entra
Otorisasi ke database individual berfungsi dengan cara yang sama dalam SQL Managed Instance seperti halnya database di SQL Server. Anda bisa membuat pengguna dari login yang sudah ada dalam database yang diberikan izin ke database tersebut, atau ditambahkan ke peran database.
Sekarang kami telah membuat database yang disebut MyMITestDB, dan login yang hanya memiliki izin default, langkah selanjutnya adalah membuat pengguna dari info masuk tersebut. Saat ini, info masuk dapat terhubung ke instans terkelola, dan melihat semua database, tetapi tidak dapat berinteraksi dengan database. Jika Anda masuk dengan akun Microsoft Entra yang memiliki izin default, dan mencoba memperluas database yang baru dibuat, Anda akan melihat kesalahan berikut:
Untuk informasi selengkapnya tentang pemberian izin database, lihat Memulai dengan Izin Mesin Database.
Membuat pengguna Microsoft Entra dan membuat tabel sampel
Catatan
Ada beberapa batasan saat pengguna masuk sebagai bagian dari grup Microsoft Entra.
Misalnya, panggilan untuk SUSER_SID
mengembalikan NULL
, karena pengguna Microsoft Entra yang diberikan bukan bagian sys.server_principals
dari tabel.
Oleh karena itu, akses ke prosedur tersimpan tertentu atau daftar izin yang diberikan dapat dibatasi dalam kasus ini.
Masuk ke instans terkelola Anda menggunakan akun
sysadmin
menggunakan SQL Server Management Studio.Di Object Explorer, klik kanan server dan pilih Kueri Baru.
Di jendela kueri, gunakan sintaks berikut untuk membuat pengguna dari login Microsoft Entra:
USE <Database Name> -- provide your database name GO CREATE USER user_name FROM LOGIN login_name GO
Contoh berikut membuat pengguna bob@aadsqlmi.net dari info masuk bob@aadsqlmi.net:
USE MyMITestDB GO CREATE USER [bob@aadsqlmi.net] FROM LOGIN [bob@aadsqlmi.net] GO
Ini juga didukung untuk membuat pengguna Microsoft Entra dari login Microsoft Entra yang merupakan grup.
Contoh berikut membuat login untuk grup Microsoft Entra mygroup yang ada di penyewa Microsoft Entra Anda.
USE MyMITestDB GO CREATE USER [mygroup] FROM LOGIN [mygroup] GO
Semua pengguna yang termasuk dalam grup saya dapat mengakses database MyMITestDB.
Penting
Saat membuat PENGGUNA dari login Microsoft Entra, tentukan user_name sebagai login_name yang sama dari LOGIN.
Untuk informasi selengkapnya, lihat MEMBUAT PENGGUNA.
Di jendela kueri baru, buat tabel uji menggunakan perintah T-SQL berikut ini:
USE MyMITestDB GO CREATE TABLE TestTable ( AccountNum varchar(10), City varchar(255), Name varchar(255), State varchar(2) );
Buat koneksi di SSMS dengan pengguna yang dibuat. Anda akan melihat bahwa Anda tidak bisa melihat tabel TestTable yang dibuat oleh
sysadmin
yang lebih lama. Kita perlu memberi pengguna izin untuk membaca data dari database.Anda bisa memeriksa izin saat ini yang dimiliki pengguna dengan menjalankan perintah berikut:
SELECT * FROM sys.fn_my_permissions('MyMITestDB','DATABASE') GO
Tambahkan pengguna ke peran tingkat database
Agar pengguna dapat melihat data dalam database, kami dapat memberikan peran tingkat database kepada pengguna.
Masuk ke instans terkelola Anda menggunakan akun
sysadmin
menggunakan SQL Server Management Studio.Di Object Explorer, klik kanan server dan pilih Kueri Baru.
Berikan peran database kepada
db_datareader
pengguna Microsoft Entra dengan menggunakan sintaks T-SQL berikut:Use <Database Name> -- provide your database name ALTER ROLE db_datareader ADD MEMBER user_name GO
Contoh berikut ini menyediakan pengguna bob@aadsqlmi.net dan grup grup saya dengan
db_datareader
izin pada database MyMITestDB:USE MyMITestDB GO ALTER ROLE db_datareader ADD MEMBER [bob@aadsqlmi.net] GO ALTER ROLE db_datareader ADD MEMBER [mygroup] GO
Periksa pengguna Microsoft Entra yang dibuat dalam database ada dengan menjalankan perintah berikut:
SELECT * FROM sys.database_principals GO
Buat koneksi baru ke instans terkelola dengan pengguna yang telah ditambahkan ke peran
db_datareader
.Perluas database di Object Explorer untuk melihat tabel.
Buka jendela kueri baru dan jalankan pernyataan SELECT berikut:
SELECT * FROM TestTable
Apakah Anda dapat melihat data dari tabel? Anda akan melihat kolom yang dikembalikan.
Meniru login Microsoft Entra
SQL Managed Instance mendukung peniruan login Microsoft Entra.
Menguji peniruan
Masuk ke instans terkelola Anda menggunakan akun
sysadmin
menggunakan SQL Server Management Studio.Di Object Explorer, klik kanan server dan pilih Kueri Baru.
Di jendela kueri, gunakan perintah berikut ini untuk membuat prosedur baru yang disimpan:
USE MyMITestDB GO CREATE PROCEDURE dbo.usp_Demo WITH EXECUTE AS 'bob@aadsqlmi.net' AS SELECT user_name(); GO
Gunakan perintah berikut untuk melihat bahwa pengguna yang Anda tirukan saat menjalankan prosedur tersimpan adalah bob@aadsqlmi.net.
Exec dbo.usp_Demo
Uji peniruan dengan menggunakan pernyataan EXECUTE AS LOGIN:
EXECUTE AS LOGIN = 'bob@aadsqlmi.net' GO SELECT SUSER_SNAME() REVERT GO
Catatan
Hanya login tingkat server SQL yang merupakan bagian sysadmin
dari peran yang dapat menjalankan operasi berikut yang menargetkan perwakilan Microsoft Entra:
- EXECUTE AS USER
- EXECUTE AS LOGIN
Menggunakan kueri lintas database
Kueri lintas database didukung untuk akun Microsoft Entra dengan login Microsoft Entra. Untuk menguji kueri lintas database dengan grup Microsoft Entra, kita perlu membuat database dan tabel lain. Anda dapat melewatkan pembuatan database dan tabel lain jika database dan tabel sudah ada.
Masuk ke instans terkelola Anda menggunakan akun
sysadmin
menggunakan SQL Server Management Studio.Di Object Explorer, klik kanan server dan pilih Kueri Baru.
Di jendela kueri, gunakan perintah berikut ini untuk membuat database bernama MyMITestDB2 dan tabel bernama TestTable2:
CREATE DATABASE MyMITestDB2; GO USE MyMITestDB2 GO CREATE TABLE TestTable2 ( EmpId varchar(10), FirstName varchar(255), LastName varchar(255), Status varchar(10) );
Di jendela kueri baru, jalankan perintah berikut untuk membuat grup saya pengguna di database baru MyMITestDB2, dan berikan izin SELECT pada database tersebut ke grup saya:
USE MyMITestDB2 GO CREATE USER [mygroup] FROM LOGIN [mygroup] GO GRANT SELECT TO [mygroup] GO
Masuk ke instans terkelola menggunakan SQL Server Management Studio sebagai anggota grup Microsoft Entra mygroup. Buka jendela kueri baru dan jalankan pernyataan SELECT lintas database:
USE MyMITestDB SELECT * FROM MyMITestDB2..TestTable2 GO
Anda akan melihat hasil tabel dari TestTable2.
Skenario tambahan yang didukung
- Manajemen Agen SQL dan eksekusi pekerjaan didukung untuk login Microsoft Entra.
- Operasi pencadangan dan pemulihan database dapat dijalankan oleh login Microsoft Entra.
- Audit semua pernyataan yang terkait dengan peristiwa masuk dan autentikasi Microsoft Entra.
- Koneksi administrator khusus untuk login Microsoft Entra yang merupakan anggota
sysadmin
peran server. - Login Microsoft Entra didukung dengan menggunakan utilitas sqlcmd dan alat SQL Server Management Studio .
- Pemicu masuk didukung untuk peristiwa masuk yang berasal dari login Microsoft Entra.
- Service Broker dan DB mail dapat disiapkan menggunakan login Microsoft Entra.
Langkah berikutnya
Mengaktifkan fitur keamanan
Lihat artikel fitur keamanan Instans Terkelola SQL untuk daftar cara komprehensif untuk mengamankan database Anda. Fitur keamanan berikut dibahas:
- Audit SQL Managed Instance
- Always Encrypted
- Deteksi ancaman
- Masking Data Dinamis
- Keamanan tingkat baris
- Transparent Data Encryption (TDE)
Kemampuan SQL Managed Instance
Untuk gambaran umum lengkap kemampuan SQL Managed Instance, lihat: