sys.sp_addrolemember (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'de Azure Synapse AnalyticsSQL veritabanı

Veritabanı kullanıcısını, veritabanı rolünü, Windows oturum açma bilgilerini veya Windows grubunu geçerli veritabanındaki bir veritabanı rolüne ekler.

Önemli

Bu özellik, SQL Server'ın gelecek bir sürümünde kaldırılacaktır. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın. Bunun yerine ALTER ROLE kullanın.

Transact-SQL söz dizimi kuralları

Sözdizimi

sys.sp_addrolemember
    [ @rolename = ] N'rolename'
    , [ @membername = ] N'membername'
[ ; ]

Uyarı

Bu söz dizimi, Azure Synapse Analytics'teki sunucusuz SQL havuzu tarafından desteklenmez.

Arguments

[ @rolename = ] N'rolename'

Mevcut veritabanındaki veritabanı rolünün adı. @rolenamesysname'dir, varsayılan yoktur.

[ @membername = ] N'membername'

Güvenlik hesabı role ekleniyor. @membernamesysname'dir, varsayılan yoktur. @membername veritabanı kullanıcısı, veritabanı rolü, Windows girişi veya Windows grubu olabilir.

Dönüş kodu değerleri

0 (başarı) veya 1 (başarısızlık).

Açıklamalar

Bir role eklenen bir sp_addrolemember üye, rolun izinlerini devralır. Yeni üye, karşılık gelen veritabanı kullanıcısı olmayan Windows seviyesinde bir ana yöneticiyse, veritabanı kullanıcısı oluşturulur, ancak giriş ile tamamen eşlenmemiş olabilir. Her zaman girişin var olup olmadığını ve veritabanına erişimi olup olmadığını kontrol edin.

Bir rol kendini üye olarak dahil edemez. Bu tür dairesel tanımlar, üyelik bir veya daha fazla ara üyelik tarafından dolaylı olarak ima edilse bile geçerli değildir.

sp_addrolemember Sabit veritabanı rolü, sabit sunucu rolü veya DBO bir role ekleyemiyor.

Sadece bir üye eklemek için veritabanı rolünü kullanır sp_addrolemember . Sunucu rolüne üye eklemek için sp_addsrvrolemember kullanın.

Permissions

Esnek veritabanı rollerine üye eklemek için aşağıdaki izinlerden biri gereklidir:

  • db_securityadmin veya sabit db_owner veritabanı rolü üyeliği.

  • Rolün sahibi olan rolde üyelik.

  • ALTER ANY ROLE Rol için izin veya ALTER izin.

Sabit veritabanı rollerine üye eklemek, sabit db_owner veritabanı rolünde üyelik gerektirir.

Örnekler

A. Windows girişi ekleyin

Aşağıdaki örnek, Windows girişini Contoso\Mary5AdventureWorks2025 veritabanına kullanıcı Mary5olarak ekler. Kullanıcı Mary5 daha sonra role Production eklenir.

Contoso\Mary5 Veritabanında Mary5 veritabanı kullanıcısı AdventureWorks2025 olarak bilindiği için, kullanıcı adı Mary5 belirtilmelidir. Giriş yoksa, ifade başarısız olur.Contoso\Mary5 Alan alanınızdan giriş yaparak test edin.

USE AdventureWorks2022;
GO

CREATE USER Mary5 FOR LOGIN [Contoso\Mary5];
GO

B. Bir veritabanı kullanıcısı ekleyin

Aşağıdaki örnek, mevcut veritabanındaki veritabanı rolüne veritabanı kullanıcısını Mary5Production ekler.

EXECUTE sp_addrolemember 'Production', 'Mary5';