2016-04-02 15 views
0

Bir geliştiriciye bir veritabanına tam erişim eklemek istiyordum. Onları istedikleri takdirde silmek de dahil olmak üzere üzerinde tam kontrole sahip olabilmelerini istedim. Her nasılsa iki şekilde tökezledim. Bunlar doğru yollar mı?Sp_addrolemember ile kullanıcı arasında varsayılan şema ile arasındaki fark nedir ...?

  1. Her iki komut arasındaki erişim/izin arasındaki fark nedir?
  2. Ne istediğimi gerçekleştirmek için doğru komut nedir? Teşekkürler.

Komut 1

USE [testdb1] 
GO 
ALTER USER [john] WITH DEFAULT_SCHEMA=[dbo] 
GO 

Komuta 2

USE [testdb1] 
GO 
EXEC sp_addrolemember N'db_owner', N'john' 
GO 

cevap

1

MSDNanswering için büyük bir kaynak olduğunu:

sp_addrolemember

Geçerli veritabanındaki bir veritabanı rolüne veritabanı kullanıcısı, veritabanı rolü, Windows oturumu veya Windows grubu ekler.

ALTER USER bir veritabanı kullanıcısı yeniden adlandırır veya varsayılan şemayı değiştirir. Ayrıca

Not sözdizimi: Başka bir deyişle

sp_addrolemember [ @rolename = ] 'role', 
    [ @membername = ] 'security_account' 


    -- SQL Server Syntax 
ALTER USER userName 
    WITH <set_item> [ ,...n ] 
[;] 

<set_item> ::= 
     NAME = newUserName 
    | DEFAULT_SCHEMA = { schemaName | NULL } 
    | LOGIN = loginName 
    | PASSWORD = 'password' [ OLD_PASSWORD = 'oldpassword' ] 
    | DEFAULT_LANGUAGE = { NONE | <lcid> | <language name> | <language alias> } 
    | ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ] 

, sp_addrolemember kullanarak, sadece geçerli veritabanında yılındadatabase user, database role, Windows login, or Windows group ekleyebilirsiniz.

ALTER USER'u kullanarak, sp_addrolemember kullanarak yapamayacağınız, adını, varsayılan şemasını, oturum açma adını, parolasını vs. değiştirebilirsiniz.

İki MSDN bağlantısını denetleyin. Onlar zaten kullanıcıya onlar (muhtemelen db_owner) ihtiyaç erişim sağlamak olabilecek bir role sahip olması koşuluyla, davanızı gelince SQL Server

, muhtemelen sp_addrolemember kullanmak istediğiniz kullanarak bilgi için büyük bir kaynaktır.

USE [testdb1] 
GO 
EXEC sp_addrolemember N'db_owner', N'john' 
GO 

Bir kullanıcının varsayılan şema değiştirdiğinde, bunların yeni bir rol almak anlamına gelmez - fakat yeni varsayılan şemasını almak ve erişilebilirlik mevcut kullanıcı için yeni şemada güvenlik kurallarına bağlı olacaktır rolü. ,'un ne istediğini size verebilir, kullanıcının varsayılan güvenlik şemasındaki güvenlik kurallarına bağlıdır.

İlgili konular