Aracılığıyla paylaş


IS_SRVROLEMEMBER (Transact-sql)

Gösterir olup bir SQL Serveroturum açma belirtilen sunucu rolü bir üyesidir.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

IS_SRVROLEMEMBER ( 'role' [ , 'login' ] )

Bağımsız değişkenler

  • 'role'
    Kontrol edilir ve sunucu rolü addır. roleis sysname.

    Geçerli değerler rolekullanıcı tanımlı sunucu rolleridir ve aşağıdaki sabit sunucu rolleri:

    sysadmin

    serveradmin

    dbcreator

    setupadmin

    bulkadmin

    securityadmin

    diskadmin

    public

    processadmin

     

  • 'login'
    Adı SQL Serverkontrol etmek için giriş. login's sysname, null varsayılan. Herhangi bir değer belirtilirse, sonuç geçerli yürütme içeriği üzerinde bağlıdır. Parametre null null döndürür sözcük içeriyorsa.

Dönüş Türleri

int

Dönüş değeri

Açıklama

0

loginÜye olmayan role.

1

loginüyesi olduğu role.

NULL

roleveya logingeçerli değil veya rol üyeliği görüntüleme izni yok.

Açıklamalar

Kullanım geçerli kullanıcı sunucu rolün izinleri gerektiren eylemi gerçekleştirip gerçekleştiremeyeceğinizi belirlemek için IS_SRVROLEMEMBER.

Windows oturumu açma, gibi Contoso\Mary5için belirtilen login, IS_SRVROLEMEMBERdöner NULL, oturum açma izni veya doğrudan erişim engellendi SQL Server.

Eğer isteğe bağlı loginparametresi sağlanan değildir ve 's loginbir Windows etki alanı oturum açma Windows Grup üyeliği aracılığıyla sabit sunucu rolü üyesi olabilir. Böyle dolaylı üyelikleri çözmek için etki alanı denetleyicisinden Windows Grup üyeliği bilgilerini IS_SRVROLEMEMBER ister. Etki alanı denetleyicisi erişilemez ya da yanıt vermiyorsa, IS_SRVROLEMEMBERtarafından hesap kullanıcı ve onun yerel grupları yalnızca rol üyeliği bilgilerini verir. Belirtilen kullanıcının geçerli kullanıcı değilse, IS_SRVROLEMEMBER tarafından döndürülen değeri doğrulayıcısının (örneğin, Active Directory) farklı son verileri güncelleştirmek için SQL Server.

İsteğe bağlı giriş parametresi sağlanıyorsa, Windows oturumu sorgulanan bulunmalıdır sys.server_principals, ya da IS_SRVROLEMEMBER döndürür null. Bu mantık geçerli olmadığını gösterir.

Giriş parametresi bir etki alanı oturum açma veya bir Windows grubu ve etki alanı denetleyicisine erişilemiyor IS_SRVROLEMEMBER çağrıları başarısız olur ve yanlış veya eksik veri döndürebilir.

Etki alanı denetleyicisi kullanılamıyorsa, Windows ilkesini yerel olarak bir yerel Windows hesabı gibi doğrulanabilir zaman IS_SRVROLEMEMBER çağrısına doğru bilgi döndürür veya bir SQL Servergiriş.

IS_SRVROLEMEMBERher zaman 0 döndürür bir Windows grubu giriş bağımsız değişken olarak kullanıldığında ve bu Windows grubu, belirtilen sunucu rolünün bir üyesi olan başka bir Windows grubu üyesidir.

Kullanıcı hesabı denetimi (uac) bulunan Windows Vistave Windows Server 2008 de farklı sonuçlar geri. Bu kullanıcı bir Windows grup üyesi olarak veya belirli bir sunucu olsun erişilen bağlı olacağını SQL Serverkullanıcının.

Rol üyeliği, temel izni olmayan bu işlevi değerlendirir. Örneğin, sysadminsabit sunucu rolü CONTROL SERVERizni. Kullanıcı CONTROL SERVERizin ama rolünün bir üyesi, bu işlev doğru kullanıcı bir üyesi olmadığını bildirir sysadmin rolü, kullanıcı izinleri olsa bile.

İlişkili İşlevler

Geçerli kullanıcının belirtilen Windows grup üyesi olup olmadığını veya SQL Serververitabanı rolü, use IS_MEMBER (Transact-sql). Belirlemekte olup bir SQL Serveroturum bir veritabanı rolünün bir üyesi, kullanın IS_ROLEMEMBER (Transact-sql).

İzinler

Sunucu rolünü görünüm tanımı izni gerektirir.

Örnekler

Aşağıdaki örnek gösterir olup olmadığını SQL Servergiriş geçerli kullanıcının üyesi olduğu sysadminsunucu rolü.

IF IS_SRVROLEMEMBER ('sysadmin') = 1
   print 'Current user''s login is a member of the sysadmin role'
ELSE IF IS_SRVROLEMEMBER ('sysadmin') = 0
   print 'Current user''s login is NOT a member of the sysadmin role'
ELSE IF IS_SRVROLEMEMBER ('sysadmin') IS NULL
   print 'ERROR: The server role specified is not valid.'

IF IS_SRVROLEMEMBER ('sysadmin') = 1
   print 'Current user''s login is a member of the sysadmin role'
ELSE IF IS_SRVROLEMEMBER ('sysadmin') = 0
   print 'Current user''s login is NOT a member of the sysadmin role'
ELSE IF IS_SRVROLEMEMBER ('sysadmin') IS NULL
   print 'ERROR: The server role specified is not valid.'

Ayrıca bkz.

Başvuru

IS_MEMBER (Transact-sql)

Güvenlik işlevler (Transact-sql)