我正在尝试使用存储过程将用户添加到我们的数据库中。我使用以下代码
declare @username as varchar(50)
set @username ='test1'
DECLARE @SQL NVARCHAR(4000);
begin
SET @SQL = 'CREATE LOGIN ' + @username + ' WITH PASSWORD = ''12345'', DEFAULT_DATABASE=[dbname], DEFAULT_LANGUAGE=[British], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF';
EXECUTE(@SQL);
end
EXEC sp_grantdbaccess @username;
EXEC SP_ADDROLEMEMBER N'db_owner', @username,
这可以工作,但会为每个新用户生成一个架构。我想将用户附加到现有架构。任何帮助将不胜感激
答案 0 :(得分:0)
“Login”将主要条目授予SERVER。
“用户”将登录条目授予单个数据库。
一个“登录”可以与许多用户相关联(每个数据库一个)。
因此,您应该能够在数据库级别定义模式。
答案 1 :(得分:0)
您应该使用CREATE USER替换sp_grantdbaccess。不推荐使用sp_grantdbacess过程。
您可以使用CREATE USER附加默认架构。来自http://msdn.microsoft.com/en-us/library/ms173463(SQL.105).aspx
<?= $form->field($model, 'survey_type')->dropDownList([$surveyTypeList],['prompt'=>'Select Survey Type','id'=>'Survey_Type_dropdown']) ?>