Azure SYNAPSE Analytics 'te adanmış bir SQL havuzunun (eski adıyla SQL DW) güvenliğini sağlamaSecure a dedicated SQL pool (formerly SQL DW) in Azure Synapse Analytics

Bu makalede, adanmış SQL havuzunuzu (eski adıyla SQL DW) güvenli hale getirmenin temelleri adım adım açıklanmaktadır.This article will walk you through the basics of securing your dedicated SQL pool (formerly SQL DW). Özellikle, bu makale, Özel SQL Havuzu (eski adıyla SQL DW) kullanarak erişimi sınırlandırma, verileri koruma ve etkinlikleri izleme kaynakları ile çalışmaya başlamanızı gösterir.In particular, this article gets you started with resources for limiting access, protecting data, and monitoring activities using dedicated SQL pool (formerly SQL DW).

Bağlantı güvenliğiConnection security

Bağlantı Güvenliği, veritabanı bağlantılarını güvenlik duvarı kuralları ve bağlantı şifrelemesi kullanarak kısıtlamayı ve bu bağlantıların güvenliğini sağlamayı kapsar.Connection Security refers to how you restrict and secure connections to your database using firewall rules and connection encryption.

Güvenlik duvarı kuralları, açıkça onaylanmamış IP adreslerinden gelen bağlantı girişimlerini reddetmek için hem MANTıKSAL SQL Server hem de veritabanları tarafından kullanılır.Firewall rules are used by both the logical SQL server and its databases to reject connection attempts from IP addresses that haven't been explicitly approved. Uygulamanızın veya istemci makinenizin ortak IP adresinden gelen bağlantılara izin vermek için, önce Azure portal, REST API veya PowerShell 'i kullanarak sunucu düzeyinde bir güvenlik duvarı kuralı oluşturmanız gerekir.To allow connections from your application or client machine's public IP address, you must first create a server-level firewall rule using the Azure portal, REST API, or PowerShell.

En iyi uygulama olarak, sunucu düzeyi güvenlik duvarınız aracılığıyla izin verilen IP adresi aralıklarını mümkün olduğunca kısıtlamalısınız.As a best practice, you should restrict the IP address ranges allowed through your server-level firewall as much as possible. Yerel bilgisayarınızdan adanmış SQL havuzunuza (eski adıyla SQL DW) erişmek için, ağınızdaki ve yerel bilgisayarınızdaki güvenlik duvarının TCP bağlantı noktası 1433 ' de giden iletişime izin verdiğinden emin olun.To access your dedicated SQL pool (formerly SQL DW) from your local computer, ensure the firewall on your network and local computer allows outgoing communication on TCP port 1433.

Adanmış SQL Havuzu (eski adıyla SQL DW) sunucu düzeyinde IP güvenlik duvarı kuralları kullanır.Dedicated SQL pool (formerly SQL DW) uses server-level IP firewall rules. Veritabanı düzeyinde IP güvenlik duvarı kurallarını desteklemez.It doesn't support database-level IP firewall rules. Daha fazla bilgi için bkz. Azure SQL veritabanı güvenlik duvarı kurallarıFor more information, see see Azure SQL Database firewall rules

Adanmış SQL havuzunuza (eski adıyla SQL DW) bağlantılar varsayılan olarak şifrelenir.Connections to your dedicated SQL pool (formerly SQL DW) are encrypted by default. Şifrelemeyi devre dışı bırakmak için bağlantı ayarlarını değiştirme yok sayılır.Modifying connection settings to disable encryption are ignored.

Kimlik DoğrulamasıAuthentication

Kimlik doğrulaması, veritabanına bağlanırken kimliğinizi nasıl kanıtlayacağınızı belirtir.Authentication refers to how you prove your identity when connecting to the database. Adanmış SQL Havuzu (eski adıyla SQL DW) Şu anda Kullanıcı adı ve parolayla SQL Server kimlik doğrulamasını destekler ve Azure Active Directory.Dedicated SQL pool (formerly SQL DW) currently supports SQL Server Authentication with a username and password, and with Azure Active Directory.

Veritabanınız için sunucuyu oluşturduğunuzda, bir Kullanıcı adı ve parolayla "Sunucu Yöneticisi" oturum açma adı belirttiniz.When you created the server for your database, you specified a "server admin" login with a username and password. Bu kimlik bilgilerini kullanarak, bu sunucuda veritabanı sahibi olarak veya SQL Server kimlik doğrulaması aracılığıyla "dbo" olarak herhangi bir veritabanında kimlik doğrulaması yapabilirsiniz.Using these credentials, you can authenticate to any database on that server as the database owner, or "dbo" through SQL Server Authentication.

Ancak, en iyi uygulama olarak, kuruluşunuzun kullanıcıları kimlik doğrulaması için farklı bir hesap kullanmalıdır.However, as a best practice, your organization's users should use a different account to authenticate. Bu şekilde, uygulamaya verilen izinleri sınırlayabilir ve uygulama kodunuzun bir SQL ekleme saldırısından etkilenmesi durumunda kötü amaçlı etkinliğin riskleri azaltabilirsiniz.This way you can limit the permissions granted to the application and reduce the risks of malicious activity in case your application code is vulnerable to a SQL injection attack.

SQL Server kimliği doğrulanmış bir kullanıcı oluşturmak için Sunucu Yöneticisi oturum açma bilgileriyle sunucunuzdaki ana veritabanına bağlanın ve yeni bir sunucu oturumu oluşturun.To create a SQL Server Authenticated user, connect to the master database on your server with your server admin login and create a new server login. Ana veritabanında da bir kullanıcı oluşturmak iyi bir fikirdir.It's a good idea to also create a user in the master database. Ana öğe içinde Kullanıcı oluşturmak, bir kullanıcının bir veritabanı adı belirtmeden SSMS gibi araçları kullanarak oturum açmasına olanak tanır.Creating a user in master allows a user to log in using tools like SSMS without specifying a database name. Ayrıca, bir sunucudaki tüm veritabanlarını görüntülemek için Nesne Gezgini 'ni kullanmalarına izin verir.It also allows them to use the object explorer to view all databases on a server.

-- Connect to master database and create a login
CREATE LOGIN ApplicationLogin WITH PASSWORD = 'Str0ng_password';
CREATE USER ApplicationUser FOR LOGIN ApplicationLogin;

Daha sonra, Sunucu Yöneticisi oturum açma bilgileriyle ADANMıŞ SQL havuzunuza (eski ADıYLA SQL DW) bağlanın ve oluşturduğunuz sunucu oturumuna göre bir veritabanı kullanıcısı oluşturun.Then, connect to your dedicated SQL pool (formerly SQL DW) with your server admin login and create a database user based on the server login you created.

-- Connect to the database and create a database user
CREATE USER ApplicationUser FOR LOGIN ApplicationLogin;

Bir kullanıcıya oturum açma veya yeni veritabanları oluşturma gibi ek işlemler gerçekleştirme izni vermek için, kullanıcıyı Loginmanager dbmanager ana veritabanındaki ve rollerine atayın.To give a user permission to perform additional operations such as creating logins or creating new databases, assign the user to the Loginmanager and dbmanager roles in the master database.

Bu ek roller ve bir SQL veritabanında kimlik doğrulama hakkında daha fazla bilgi için bkz. Azure SQL veritabanı 'nda veritabanlarını ve oturum açma Işlemlerini yönetme.For more information on these additional roles and authenticating to a SQL Database, see Managing databases and logins in Azure SQL Database. Azure Active Directory kullanarak bağlanma hakkında daha fazla bilgi için bkz. Azure Active Directory kimlik doğrulaması kullanarak bağlanma.For more information on connecting using Azure Active Directory, see Connecting by using Azure Active Directory Authentication.

YetkilendirmeAuthorization

Yetkilendirme, kimlik doğrulamasından ve bağlandıktan sonra bir veritabanı içinde yapabileceklerinizi ifade eder.Authorization refers to what you can do within a database once you are authenticated and connected. Yetkilendirme ayrıcalıkları, rol üyelikleri ve izinleri tarafından belirlenir.Authorization privileges are determined by role memberships and permissions. En iyi uygulama olarak, kullanıcılarınıza gerekli olan en düşük ayrıcalıkları tanımanız gerekir.As a best practice, you should grant users the least privileges necessary. Rolleri yönetmek için aşağıdaki saklı yordamları kullanabilirsiniz:To manage roles, you can use the following stored procedures:

EXEC sp_addrolemember 'db_datareader', 'ApplicationUser'; -- allows ApplicationUser to read data
EXEC sp_addrolemember 'db_datawriter', 'ApplicationUser'; -- allows ApplicationUser to write data

Bağlantı kurmak için kullandığınız sunucu yöneticisi hesabı, veritabanında tüm işlemleri gerçekleştirme yetkisi olan db_owner rolünün üyesidir.The server admin account you are connecting with is a member of db_owner, which has authority to do anything within the database. Bu hesabı şema yükseltmeleri ve diğer yönetimsel işlemlerde kullanmak üzere saklayın.Save this account for deploying schema upgrades and other management operations. Uygulamanızdan veritabanına, uygulamanızın ihtiyaç duyduğu en düşük ayrıcalıklarla bağlanmak için daha sınırlı izinlere sahip olan "ApplicationUser" hesabını kullanın.Use the "ApplicationUser" account with more limited permissions to connect from your application to the database with the least privileges needed by your application.

Kullanıcının veritabanında neler yapabileceğini daha fazla sınırlandırmak için yollar vardır:There are ways to further limit what a user can do within the database:

  • Ayrıntılı izinler , veritabanındaki tek tek sütunlarda, tablolarda, görünümlerde, şemalarda, yordamlarda ve diğer nesnelerde hangi işlemleri yapabilmeniz gerektiğini denetlemenize olanak tanır.Granular Permissions let you control which operations you can do on individual columns, tables, views, schemas, procedures, and other objects in the database. En fazla denetime sahip olmak ve gereken en düşük izinleri vermek için ayrıntılı izinler kullanın.Use granular permissions to have the most control and grant the minimum permissions necessary.
  • Db_datareader ve db_datawriter dışındaki veritabanı rolleri , daha güçlü uygulama kullanıcı hesapları veya daha az güçlü yönetim hesapları oluşturmak için kullanılabilir.Database roles other than db_datareader and db_datawriter can be used to create more powerful application user accounts or less powerful management accounts. Yerleşik sabit veritabanı rolleri, izin vermek için kolay bir yol sağlar, ancak gerekenden daha fazla izin verilmesine neden olabilir.The built-in fixed database roles provide an easy way to grant permissions, but can result in granting more permissions than are necessary.
  • Saklı yordamlar ile veritabanında gerçekleştirilebilecek eylemler sınırlandırılabilir.Stored procedures can be used to limit the actions that can be taken on the database.

Aşağıdaki örnek, Kullanıcı tanımlı bir şemaya okuma erişimi verir.The following example grants read access to a user-defined schema.

--CREATE SCHEMA Test
GRANT SELECT ON SCHEMA::Test to ApplicationUser

Veritabanlarını ve sunucuları Azure portal veya Azure Resource Manager API 'sini kullanarak yönetmek, Portal Kullanıcı hesabınızın rol atamaları tarafından denetlenir.Managing databases and servers from the Azure portal or using the Azure Resource Manager API is controlled by your portal user account's role assignments. Daha fazla bilgi için bkz. Azure Portal kullanarak Azure rolleri atama.For more information, see Assign Azure roles using the Azure portal.

ŞifrelemeEncryption

Saydam Veri Şifrelemesi (TDE), bekleyen verilerinizi şifreleyerek ve şifresini çözerek kötü amaçlı etkinlik tehditlerine karşı korunmaya yardımcı olur.Transparent Data Encryption (TDE) helps protect against the threat of malicious activity by encrypting and decrypting your data at rest. Veritabanınızı şifrelerken, ilişkili yedeklemeler ve işlem günlük dosyaları, uygulamalarınızda herhangi bir değişiklik yapılmadan şifrelenir.When you encrypt your database, associated backups and transaction log files are encrypted without requiring any changes to your applications. Saydam Veri Şifrelemesi, veritabanı şifreleme anahtarı olarak adlandırılan bir simetrik anahtarı kullanarak veritabanı depolama alanının tamamını şifreler.TDE encrypts the storage of an entire database by using a symmetric key called the database encryption key.

SQL veritabanında, veritabanı şifreleme anahtarı yerleşik bir sunucu sertifikası tarafından korunur.In SQL Database, the database encryption key is protected by a built-in server certificate. Yerleşik sunucu sertifikası her bir sunucu için benzersizdir.The built-in server certificate is unique for each server. Microsoft bu sertifikaları en az 90 günde bir otomatik olarak döndürür.Microsoft automatically rotates these certificates at least every 90 days. Kullanılan şifreleme algoritması AES-256 ' dir.The encryption algorithm used is AES-256. TDE genel bir açıklaması için bkz. Saydam veri şifrelemesi.For a general description of TDE, see Transparent Data Encryption.

Azure Portal veya T-SQL' i kullanarak veritabanınızı şifreleyebilirsiniz.You can encrypt your database using the Azure portal or T-SQL.

Sonraki adımlarNext steps

Farklı protokollerle ambarınıza bağlanma hakkındaki ayrıntılar ve örnekler için bkz. ADANMıŞ SQL havuzuna bağlanma (eski ADıYLA SQL DW).For details and examples on connecting to your warehouse with different protocols, see Connect to dedicated SQL pool (formerly SQL DW).