Ben bir microsoft sql server veritabanı ve bir dizi kullanıcı var. Şimdi benim uygulamamda, bazı işlevler sadece kullanıcı belli hakları (admin) ile kullanıcı adı ve şifre girmişse görünür yapmak istiyorum. Veritabanları ve kullanıcı adları ve hakları değişebileceğinden, bir microsoft sql sunucu kullanıcısının sahip olduğu izinleri/hakları nasıl kontrol ederim?microsoft sql server: kullanıcıların kendi izinlerini kontrol et
cevap
Geçerli kullanıcının, belirli izinler üzerinde, tüm güvenlik iznini döndüren [sys.fn_mypermissions][1]
kullanarak kontrol edebilirsiniz. Ayrıca HAS_PERMS_BY_NAME
ile belirli bir izni kontrol edebilirsiniz. Örneğin.
SELECT HAS_PERMS_BY_NAME(null, null, 'CONTROL SERVER');
Teşekkürler, bu kadar. Şimdi, örneğin, kullanıcının belirli bir veritabanında eki varsa, aşağıdakileri kontrol edebilirim: SELECT HAS_PERMS_BY_NAME ('veritabani', 'DATABASE', 'INSERT') AS Expr1. Ayrıca, eklediğiniz dokümantasyon bağlantısına göre diğer izinleri de kontrol edin. –
Ben
Seni ilgili uygulama kullanıcılarını ekleyebileceğiniz bir SQL Server veritabanı Rolü oluşturmak öneririm ..... ancak ben yapmak varsayarak senin sorunun tanımını anlaması tamamen emin değilim App (veya bir Windows Domain Group) içinde tutulan bazı grup üyelikleri aracılığıyla olabilir. Grup üyeliğini, bağımsız olarak kullanıcı üyeliğini yönetmek için Rolü kullanarak veritabanında bulunan ilgili izinleri yönetmekten gelen eşlemeyi ayarlamak için kullanabilirsiniz. Bu şekilde, yalnızca bir uygulamanın Kullanıcı'nın SQL Server'ın güvenlik yapılandırmasını sorgulamadan ilgili uygulama veya pencere grubunun üyesi olduğunu kontrol etmeniz gerekir.
Tasarım perspektifinden neden hala "check-in" izinlerine ihtiyacınız olduğunu göremiyorum. İzinler, yerinde doğruladığınız kullanıcı kimlik doğrulamasının onaylandığı uygun Rol'e üyelik aracılığıyla verilir. Gerekli "yönetici" haklarına sahip bir Rol ve gerekli kullanıcı haklarına sahip bir Rol oluşturmalısınız. Ardından kullanıcıları ilgili rollere ekleyin/eşleyin. Daha sonra, kullanıcının doğru kimlik bilgileriyle oturum açabileceği gerçeği bu amaca hizmet ettiğinden, izinleri/onaylamaları gerekmez. –
IS_MEMBER fonksiyonunu kullanıyor Bunu yapmanın en kolay yolu, kullanıcı rolü/grup Db_owner içindedir Hava kontrol eder: Eğer kaydedilir bir yönetici ima CONTROL SERVER
izni için kontrol edebilirsiniz. Fonksiyon, veritabanı seviyesinde bir kontrol gerçekleştirir. Sunucu leve adresinde kontrol etmeniz gerekiyorsa, IS_SRVROLEMEMBER işlevini kullanabilirsiniz. Her ikisi de sql server 2005'ten beri kullanılabilir.
- 1. Microsoft SQL Server 2012
- 2. microsoft sql server 2008
- 3. Microsoft SQL Server Yayımlama
- 4. Microsoft SQL Server
- 5. Bir TFS grubundaki tüm kullanıcıların SQL Server
- 6. Microsoft SQL Server e-posta doğrulaması
- 7. SQL Server Agent - kendi job_id'i alın
- 8. Django'da şablonun izinlerini kontrol edin
- 9. Microsoft SQL Server'a Oracle SQL Developer bağlantısı
- 10. Sql Server
- 11. SQL Server İstemcisinin Yüklenip Yüklenmediğini Kontrol Edin
- 12. İlk Bakiyeyi Kontrol Et
- 13. SQL Server:
- 14. Microsoft SQL Server Yönetimi'ni kullanarak bir TABLO çoğaltma
- 15. İstemci İstatistik tablosu (Microsoft SQL Server Management Studio)
- 16. Microsoft SQL Server "Express" sürümleri üzerinde geliştirme yapmak serbest mi?
- 17. Microsoft SQL Server 2016 Release Candidate 0 (RC0) Kurulum
- 18. SQL Server birimleri soru
- 19. SQL Server Express Edition
- 20. Windows/Linux'ta dosya yazma izinlerini kontrol edin
- 21. Kayıt veya SQL Server
- 22. SQL Server 2012
- 23. C# yazıcı durumunu kontrol et
- 24. Android'de anahtara basıldığını kontrol et.
- 25. Git klonu - tekrar kontrol et
- 26. Görüntünün olup olmadığını kontrol et
- 27. SQL Server
- 28. [SQL Server]
- 29. SQL Server
- 30. SQL Server
Açıklayabiliyor musunuz - kullanıcı adınıza/parolanıza bağlı olarak hangi işlevlerin görünmesi gerekir? Kullanıcı adınızı ve şifrenizi veritabanınıza kaydediyor musunuz, yoksa sql server güvenlik klasörü altında bir kullanıcı adı/şifre mi demek istiyorsunuz? Kendi güvenlik seviyenizi veya kullanıcı masanızdaki bir bayrağı özümsemek istediğiniz gibi görünüyor - Kullanıcı {Kullanıcı adı, Şifre, isAdmin}, daha sonra uygulamanızda, giriş yaptıklarında bir yönetici olup olmadığını kontrol edebilir misiniz? Eğer öyleyse, ekstra işlev, eğer değilse, gizleyin. Ayrıca, birçok farklı erişim düzeyiniz varsa, ayrı bir tablo kullanmayı düşünün – Prescott
Hayır ek işlevsellik yok. Basit terimlerle ifade etmek. N kullanıcı grupları olduğunu düşünün. İlk önce sadece sunucuyu sorgulayabilir. İkincisi, ekleme ifadelerini sorgulayabilir ve gerçekleştirebilir. Üçüncüsü de görünümler oluşturabilir ... vb. Aslında sadece mevcut kullanıcının veritabanında ne yapmasına izin verildiğini bilmek istiyorum. –
Btw. Gruplara sabitlenmeyin. Grup halinde organize edilmelerine gerek yoktur. Sadece farklı izinlere sahip birden çok kullanıcı. Sadece mevcut dbuser'ın kullanamayacağı işlevselliği devre dışı bırakmak istiyorum çünkü veritabanında gerekli izin yok. –