Aracılığıyla paylaş


sp_addrolemember (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnalytics Platform Sistemi (PDW)Microsoft Fabric SQL 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

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';

Örnekler: Analiz Platformu Sistemi (PDW)

C. Windows girişi ekleyin

Aşağıdaki örnek, giriş LoginMary erişimini AdventureWorks2025 veritabanına kullanıcı UserMaryolarak ekler. Kullanıcı UserMary daha sonra role Production eklenir.

Uyarı

Giriş LoginMary veritabanında veritabanı kullanıcısı UserMaryAdventureWorks2025 olarak bilindiğinden, kullanıcı adı UserMary belirtilmelidir. Giriş yoksa, ifade başarısız olur.Mary5 Giriş ve kullanıcı genellikle aynı isme sahiptir. Bu örnek, girişi etkileyen eylemleri kullanıcıdan ayırt etmek için farklı isimler kullanır.

-- Uses AdventureWorks2022
CREATE USER UserMary FOR LOGIN LoginMary;
GO

EXECUTE sp_addrolemember 'Production', 'UserMary';

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

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

EXECUTE sp_addrolemember 'Production', 'UserMary';