Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Aplikasi ke:Azure SQL Managed Instance
Dalam artikel ini, pelajari cara menggunakan prinsipal server (login) yang didukung oleh Microsoft Entra ID (formerly Azure Active Directory) untuk mengamankan Azure SQL Managed Instance.
Dalam tutorial ini, Anda akan mempelajari cara:
- Buat login Microsoft Entra untuk instans terkelola SQL.
- Berikan izin untuk masuk dalam instans terkelola SQL.
- Buat pengguna Microsoft Entra dari data login.
- Tetapkan izin kepada pengguna, dan kelola keamanan database.
- Gunakan impersonasi dengan pengguna.
- Gunakan kueri lintas basis data untuk pengguna.
- Pelajari tentang fitur keamanan, seperti perlindungan ancaman, audit, masking data, dan enkripsi.
Catatan
Microsoft Entra ID sebelumnya dikenal sebagai Azure Active Directory (Azure AD).
Prasyarat
Untuk menyelesaikan tutorial ini, pastikan prasyarat berikut dipenuhi:
- SQL Server Management Studio (SSMS)
- Instance SQL yang dikelola
- Ikuti artikel ini: Mulai cepat: Membuat instans terkelola SQL
- Dapat mengakses instans terkelola SQL Anda dan menyediakan administrator Microsoft Entra untuk instans terkelola SQL. Untuk mempelajari selengkapnya, lihat:
Membatasi akses
Instans terkelola SQL dapat diakses melalui alamat IP privat. Sama seperti lingkungan SQL Server terisolasi, aplikasi, atau pengguna memerlukan akses ke jaringan SQL Managed Instance (VNet) sebelum koneksi dapat dibuat. Untuk informasi selengkapnya, lihat Hubungkan aplikasi Anda ke SQL Managed Instance.
Dimungkinkan juga untuk mengonfigurasi titik akhir layanan pada instans terkelola SQL, yang memungkinkan koneksi publik dengan cara yang sama seperti untuk Azure SQL Database. Untuk informasi selengkapnya, lihat Konfigurasi titik akhir publik di Azure SQL Managed Instance.
Membuat login Microsoft Entra menggunakan SSMS
Administrator SQL dapat membuat login Microsoft Entra pertama, atau admin Microsoft Entra yang dibuat selama proses provisi. Untuk informasi selengkapnya, lihat Menyediakan administrator Microsoft Entra untuk SQL Managed Instance.
Lihat artikel berikut ini untuk contoh menyambungkan ke SQL Managed Instance:
- Quickstart: Mengonfigurasi VM Azure untuk menyambungkan ke SQL Managed Instance
- Quickstart: Mengonfigurasi koneksi point-to-site untuk SQL Managed Instance dari lingkungan lokal
Sambungkan ke instans terkelola SQL Anda menggunakan login SQL sysadmin atau admin Microsoft Entra dengan 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 GOContoh ini membuat login untuk akun
nativeuser@aadsqlmi.onmicrosoft.com.USE master GO CREATE LOGIN [nativeuser@aadsqlmi.onmicrosoft.com] FROM EXTERNAL PROVIDER GOPada toolbar, pilih Jalankan untuk membuat info masuk.
Periksa login yang baru ditambahkan dengan menjalankan perintah T-SQL berikut:
SELECT * FROM sys.server_principals; GOTangkap layar tab Hasil di Object Explorer SSMS yang memperlihatkan nama, principal_id, sid, jenis, dan deskripsi_tipe dari login yang baru ditambahkan.
Untuk informasi selengkapnya, lihat CREATE LOGIN.
Memberikan izin untuk membuat akun
Login yang ada harus memiliki izin yang sesuai atau menjadi bagian dari peran server yang sesuai untuk membuat login Microsoft Entra lainnya.
Login otentikasi SQL
Jika login merupakan prinsipal server yang berbasis autentikasi SQL, maka harus diberi peran sysadmin untuk membuat login bagi akun Microsoft Entra.
Microsoft Entra log masuk autentikasi
- Jika login adalah prinsipal server Microsoft Entra, prinsipal tersebut harus ditetapkan peran server sysadmin atau securityadmin untuk membuat login bagi pengguna, grup, dan aplikasi Microsoft Entra lainnya.
- Minimal, izin
ALTER ANY LOGINharus diberikan untuk membuat login Microsoft Entra lainnya. - Secara default, izin standar diberikan kepada login Microsoft Entra yang baru dibuat di
master, dengan izinCONNECT SQLdanVIEW ANY DATABASE. - Peran server sysadmin dapat diberikan ke banyak login Microsoft Entra dalam instans terkelola SQL.
Untuk menambahkan login ke peran server sysadmin :
Masuk lagi ke instans SQL terkelola, 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 Microsoft Entra akses peran sysadmin pada server dengan menggunakan sintaks T-SQL berikut:
ALTER SERVER ROLE sysadmin ADD MEMBER login_name GOContoh berikut memberikan peran server sysadmin ke login
nativeuser@aadsqlmi.onmicrosoft.com:ALTER SERVER ROLE sysadmin ADD MEMBER [nativeuser@aadsqlmi.onmicrosoft.com] GO
Membuat login Microsoft Entra tambahan menggunakan SSMS
Setelah login Microsoft Entra dibuat dan diberikan hak istimewa sysadmin, login tersebut dapat membuat login tambahan menggunakan klausa FROM EXTERNAL PROVIDER dengan CREATE LOGIN.
Sambungkan ke instans terkelola SQL dengan login Microsoft Entra dengan memilih Hubungkan ke Server di SQL Server Management Studio (SSMS).
- Masukkan nama host SQL Managed Instance Anda pada bagian Server name.
- Untuk Autentikasi, pilih Microsoft Entra 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 GOContoh ini membuat login untuk pengguna Microsoft Entra
bob@aadsqlmi.net, yang domainnyaaadsqlmi.nettelah difederasikan dengan domain Microsoft Entra .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 GOBuat database di instance terkelola SQL 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 Microsoft Entra ID. Grup harus ada di Microsoft Entra ID sebelum menambahkan login ke SQL Managed Instance. Lihat Buat grup dasar dan tambahkan anggota menggunakan Microsoft Entra ID. Buat grup mygroup, dan tambahkan anggota ke grup ini.
Buka jendela kueri baru di SQL Server Management Studio.
Contoh ini mengasumsikan ada grup yang disebut mygroup di Microsoft Entra ID. Jalankan perintah berikut:
USE master GO CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER GOSebagai pengujian, masuk ke instans terkelola SQL dengan login atau grup yang baru dibuat. Buka koneksi baru ke instans terkelola SQL, dan gunakan login 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 untuk prinsipal Microsoft Entra sebagai pengguna dan login menjangkau pengguna tamu internal dan eksternal dari Microsoft Entra External ID. Pengguna tamu, baik secara individual maupun sebagai bagian dari grup, dapat digunakan sama dengan pengguna Microsoft Entra lain di Azure SQL. Jika Anda ingin pengguna tamu dapat membuat login server Microsoft Entra lain atau pengguna database, mereka harus memiliki izin untuk membaca identitas lain di direktori Microsoft Entra. Izin ini dikonfigurasi pada tingkat direktori. Untuk informasi selengkapnya, lihat izin akses guest di Microsoft Entra ID.
Membuat pengguna Microsoft Entra dari login Microsoft Entra
Otorisasi ke database individual bekerja dengan cara yang sama dalam SQL Managed Instance seperti 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 setelah kita membuat database yang disebut MyMITestDB dan login yang hanya memiliki izin default, langkah selanjutnya adalah membuat pengguna dari login tersebut. Saat ini, login dapat terhubung ke instans terkelola SQL 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 memberikan izin database, lihat Mulai dengan Izin Database Engine.
Membuat pengguna Microsoft Entra dan membuat tabel sampel
Catatan
Ada beberapa batasan saat pengguna masuk sebagai bagian dari grup Microsoft Entra.
Misalnya, panggilan ke SUSER_SID mengembalikan NULL, karena pengguna Microsoft Entra yang diberikan bukan bagian dari tabel sys.server_principals.
Oleh karena itu, akses ke prosedur tersimpan tertentu atau daftar izin yang diberikan mungkin terbatas dalam kasus ini.
Masuk ke instans terkelola SQL Anda dengan akun sysadmin di 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 GOContoh berikut membuat pengguna
bob@aadsqlmi.netdari loginbob@aadsqlmi.net:USE MyMITestDB GO CREATE USER [bob@aadsqlmi.net] FROM LOGIN [bob@aadsqlmi.net] GOIni 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] GOSemua pengguna yang termasuk dalam grup saya dapat mengakses database MyMITestDB.
Penting
Saat membuat USER dari login Microsoft Entra, tentukan user_name sebagai login_name yang sama dari
LOGIN.Untuk informasi selengkapnya, lihat CREATE USER.
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 telah Anda buat. Anda akan melihat bahwa Anda tidak dapat melihat tabel TestTable yang dibuat oleh sysadmin sebelumnya. 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 SQL Anda dengan akun sysadmin menggunakan SQL Server Management Studio.
Di Object Explorer, klik kanan server dan pilih Kueri Baru.
Beri pengguna Microsoft Entra peran database db_datareader dengan menggunakan sintaks T-SQL berikut:
Use <Database Name> -- provide your database name ALTER ROLE db_datareader ADD MEMBER user_name GOContoh berikut menyediakan pengguna
bob@aadsqlmi.netdan grup mygroup dengan izin db_datareader pada database MyMITestDB :USE MyMITestDB GO ALTER ROLE db_datareader ADD MEMBER [bob@aadsqlmi.net] GO ALTER ROLE db_datareader ADD MEMBER [mygroup] GOPeriksa apakah pengguna Microsoft Entra yang dibuat dalam database ada dengan menjalankan perintah berikut:
SELECT * FROM sys.database_principals GOBuat koneksi baru ke instans terkelola SQL dengan pengguna yang telah ditambahkan ke peran db_datareader .
Perluas database di Object Explorer untuk melihat tabel.
Buka jendela kueri baru dan jalankan pernyataan berikut
SELECT:SELECT * FROM TestTableApakah Anda dapat melihat data dari tabel? Anda akan melihat kolom yang dikembalikan seperti yang ditunjukkan dalam cuplikan layar berikut:
Menyamar sebagai login Microsoft Entra
SQL Managed Instance mendukung peniruan login Microsoft Entra.
Menguji pemalsuan identitas
Masuk ke instans terkelola SQL Anda dengan 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(); GOGunakan perintah berikut untuk melihat bahwa pengguna yang Anda tirukan saat menjalankan prosedur tersimpan adalah
bob@aadsqlmi.net.Exec dbo.usp_DemoUji peniruan dengan menggunakan
EXECUTE AS LOGINpernyataan:EXECUTE AS LOGIN = 'bob@aadsqlmi.net' GO SELECT SUSER_SNAME() REVERT GO
Catatan
Hanya login tingkat server SQL yang merupakan bagian dari peran sysadmin yang dapat menjalankan operasi berikut yang menargetkan prinsipal Microsoft Entra:
EXECUTE AS USEREXECUTE 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 SQL Anda dengan 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
SELECTizin pada database tersebut ke grup saya:USE MyMITestDB2 GO CREATE USER [mygroup] FROM LOGIN [mygroup] GO GRANT SELECT TO [mygroup] GOMasuk ke instans terkelola SQL menggunakan SQL Server Management Studio sebagai anggota grup Microsoft Entra mygroup. Buka jendela kueri baru dan jalankan pernyataan lintas database
SELECT:USE MyMITestDB SELECT * FROM MyMITestDB2..TestTable2 GOAnda akan melihat hasil tabel dari TestTable2.
Skenario tambahan yang didukung
- Manajemen Agen SQL dan pelaksanaan pekerjaan didukung untuk login Microsoft Entra.
- Microsoft Entra login dapat menjalankan operasi pencadangan dan pemulihan database.
- Auditing dari semua pernyataan yang terkait dengan login Microsoft Entra dan peristiwa autentikasi.
- Koneksi administrator khusus untuk login Microsoft Entra yang merupakan anggota peran server sysadmin.
- Microsoft Entra login didukung dengan menggunakan utilitas sqlcmd dan alat SQL Server Management Studio.
- Pemicu log masuk didukung untuk peristiwa log masuk yang berasal dari login Microsoft Entra.
- Service Broker dan DB mail dapat disiapkan menggunakan login Microsoft Entra.
Konten terkait
- SQL Managed Instance fitur keamanan
- Mulai mempelajari cara melakukan audit pada Azure SQL Managed Instance
- Always Encrypted
- Konfigurasi Advanced Threat Protection di Azure SQL Managed Instance
- Data Masking Dinamis
- Keamanan tingkat baris
- Transparent Data Encryption (TDE)
- Apa itu Azure SQL Managed Instance?