Merhaba arkadaşlar bugün sizlere daha önceden yazmış olduğum SQL Serverda Giriş İçin Yeni Kullanıcı Tanımlama konusu için arayüz tarafında değilde SQL command query tarfında kısaca kod ile nasıl kullanıcı oluşturulabileceği ile ilgili bir yazı talebi geliyordu. Bu yazıyı okumak için tıklayınız.
Aşağıda bu durum ile ilgili kullanabileceğiniz kodları paylaşacağım. Burada iki çeşit kullanım şekli vardır. Birincisi var olan bir windows domain kullanıcısını mı tanımlayıp yetkilendireceksiniz yoksa normal sql server kullanıcısı oluşturarak mı yetkilendirme yapmak istiyeceksiniz. Bu durumlara göre kodlar değişiklik gösterecektir.
İlk olarak Sql Server Authentication oluşturarak yeni kullanıcı oluşturma ve yetki tanımlamasının kodunu paylaşıp gerekli açıklamayı yapacağım.
1 2 3 4 5 6 7 |
CREATE LOGIN yunusemre WITH PASSWORD = 'Yunus_Emre' ,DEFAULT_DATABASE = [yunusemrearacDatabase] GO USE [yunusemrearacDatabase]; CREATE USER yunusemre FOR LOGIN yunusemre; EXEC sp_addrolemember 'db_datareader', 'yunusemre' EXEC sp_addrolemember 'db_datawriter', 'yunusemre' |
Yukarıdaki kodu kullanarak gerekli işlemleri yapabilirsiniz. Buradaki değişken tanımlamalarını anlatacak olursak.
- yunusemre : Bunun geçtiği her tarafta oluşturmak istediğiniz kullanıcı adını yazıyoruz siz oluşturacağınız kullanıcı adını bununla değiştirmeniz gerekmektedir.
- Yunus_Emre : Bu ise oluşturacağınız kullanıcıya tanımlanacak olan şifredir aynı şekilde bunu da oluşturacağınız kullanıcı için tanımlamak istediğiniz şifre ile değiştirmeniz gerekmektedir. Burada dikkat etmeniz gereken şifre oluşturma kurallarına uygun şifre tanımlamanız gerekecektir aksi takdirde şifre oluşturma kurallarına uygun şifre belirlemediğinize dair hata verecektir.
- [yunusemrearacDatabase] : Bu kısım ise yetki vereceğiniz veri tabanı ismini yazacağınız alandır. Bunu da yine yetki vereceğiniz veri tabanı bilgisi ile güncellemeniz gerekmektedir. Burada birden fazla veri tabanı için yetkilendirme yapacaksanız kod kısmında yer alan ‘GO’ da dahil olamak üzeri sonraki kısmı tekrardan yazarak veri tabanı bilgilisini kullanıcı ve seviye bilgisini değiştirerek arttırabilirsiniz.
- EXEC sp_addrolemember ‘db_datareader’, ‘yunusemre’ : Bu satırlar ise veritabanı kullanıcıya yetki seviyesi tanımlamak için yazılan kısımdır. Birden fazla yetki tanımlamak için her bir yetkiye bir satır ekleyerek arttırılabilir. ‘db_datawriter’ kısmı ise yetki seviyesidir bunlar yerine tanımlanabilecek yetki tanımlarını yazının sonunda paylaşıyor olacağım.
Bu kısımdan sonra şimdi de bir windows kullanıcı için sql server tarafında kullanıcıyı ekleme ve veri tabanına yetki tanımlaması kodunu aşağıda paylaşacağım ve gerekli açıklamaları yapacağım.
1 2 3 4 5 6 7 |
CREATE LOGIN [YUNUSEMREARAC\yunusemre] FROM WINDOWS WITH DEFAULT_DATABASE = [yunusemrearacDatabase]; GO USE [yunusemrearacDatabase]; CREATE USER yunusemre FOR LOGIN [YUNUSEMREARAC\yunusemre]; EXEC sp_addrolemember 'db_datareader', 'yunusemre' EXEC sp_addrolemember 'db_datawriter', 'yunusemre' |
Yukarıdaki kodu kullanarak gerekli işlemleri yapabilirsiniz. Buradaki değişken tanımlamalarını anlatacak olursak.
- [YUNUSEMREARAC\yunusemre] : Bu kısımda yetki tanımlaması yapacağınız windows kullanıcısını domain adı ile birlikte yazıyoruz.
- [yunusemrearacDatabase] : Bu kısım ise yetki vereceğiniz veri tabanı ismini yazacağınız alandır. Bunu da yine yetki vereceğiniz veri tabanı bilgisi ile güncellemeniz gerekmektedir. Burada birden fazla veri tabanı için yetkilendirme yapacaksanız kod kısmında yer alan ‘GO’ da dahil olamak üzeri sonraki kısmı tekrardan yazarak veri tabanı bilgilisini kullanıcı ve seviye bilgisini değiştirerek arttırabilirsiniz.
- EXEC sp_addrolemember ‘db_datareader’, ‘yunusemre’ : Bu satırlar ise veritabanı kullanıcıya yetki seviyesi tanımlamak için yazılan kısımdır. Birden fazla yetki tanımlamak için her bir yetkiye bir satır ekleyerek arttırılabilir. ‘db_datawriter’ kısmı ise yetki seviyesidir bunlar yerine tanımlanabilecek yetki tanımlarını yazının sonunda paylaşıyor olacağım.
Gördüğünüz gibi bu şekilde her iki kullanıcı tipine göre de kullanıcı tanımlaması yapılarak yetkilendirme işlemini yapabilirsiniz.
Aşağıda da kullanıcı için yetkilendirme adlarını ve tanımlamalarını görebilirsiniz.
- db_accessadmin : Kullanıcı için veri tabanına erişim yetkisi verir.
- db_backupoperator : Kullanıcı veri tabanı yedeğini alabilme yetkisi verir.
- db_datareader : Kullanıcı veri tabanında yer alan tablolar üzerinde “Select” işlemleri yapabilir.
- db_datawriter : Kullanıcı veri tabanında yer alan tablolar üzerinde “Update”, “Delete” ve “Insert” işlemlerini yapabilir.
- db_ddladmin : Kullanıcı veri tabanı üzerinde DDL komutlarını çalıştırabilir.
- db_denydatareader : Kullanıcı veri tabanında yer alan tablolar üzerinde “Select” işlemi YAPAMAZ.
- db_denydatawriter : Kullanıcı veri tabanında yer alan tablolar üzerinde “Update”, “Delete” ve “Insert” işlemlerini YAPAMAZ.
- db_owner : Kullanıcı veri tabanı üzerinde veri tabanını silme de dahil olacak şekilde istediği tüm işlemleri yapabilir.
- db_securityadmin : Kullanıcı veri tabanı üzerindeki yetkilendirmeleri değiştirebilir.
Gördüğünüz gibi arkadaşlar yukarıdaki adımları uygulayarak sorunsuz bir şekilde istediğiniz gibi kullanıcı oluşturarak yetkilendirme yapabilirsiniz.
[…] yanı sıra başka bir yöntem olarakta SQL Serverda SQL Query Kullanarak Yeni Kullanıcı Oluşturmak ve Veri Tabanına Bu Kullanıcı İç… için yazmış olduğum yazıyı okumak için […]