powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как добавить пользователя в БД SQL Server средствами SQL?
2 сообщений из 2, страница 1 из 1
Как добавить пользователя в БД SQL Server средствами SQL?
    #32023760
Puffy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавить нужно логин, и пользователя для этого логина в необходимую БД с необходимой ролью... Можно ли при этом пользоваться транзакциями?
Подскажите!...
...
Рейтинг: 0 / 0
Как добавить пользователя в БД SQL Server средствами SQL?
    #32023765
xxxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте Этот скрипт. Запускать под sa
-- Создание пользователя БД
set nocount on
declare @namenlang sysname, @namDB sysname, @cdb int, @i int,
@aliaslang sysname, @namUS sysname, @crEX varchar(500)
select @namUS='XXXX', -- имя пользователя -------- ТРЕБУЕМЫЙ ВАМ
@namenlang=NULL, -- имя языка
@aliaslang='Russian', -- псевдоним языка
@namDB='MyDB' -- имя БД
declare @ListDB table (NumDB int identity, NamDB sysname)
use master
insert into @ListDB select name from sysdatabases
where name not in ('master','tempdb','msdb')
and name != @namDB
select @cdb=count(*) from @ListDB
if db_id(@namDB) is not NULL begin
if exists(select * from master.dbo.syslogins
where loginname = @namUS) begin
if user_id(@namUS) is not NULL exec sp_dropuser @namUS
use msdb
if user_id(@namUS) is not NULL exec sp_dropuser @namUS
use tempdb
if user_id(@namUS) is not NULL exec sp_dropuser @namUS
select @i=@cdb while @i > 0 begin
select @crEX='use '+NamDB+char(10)+
'if user_id('''+@namUS+''') is not NULL '+
'exec sp_dropuser '''+@namUS+''''
from @ListDB where NumDB = @i
exec (@crEX) select @i=@i-1 end
select @crEX='use '+@namDB+char(10)+
'if exists(select ''*'' from sysusers'+char(10)+
'where name=''dbo'' and sid != (select sid'+char(10)+
'from master.dbo.syslogins'+char(10)+
'where loginname = ''sa''))'+char(10)+
' exec sp_changedbowner ''sa'''+char(10)+
' if user_id('''+@namUS+''') is not NULL'+
' exec sp_dropuser '''+@namUS+''''+char(10)
exec (@crEX)
use master
exec sp_droplogin @loginame = @namUS end
use master
if exists (select * from master.dbo.syslanguages
where alias = @aliaslang) begin
select @namenlang=name from master.dbo.syslanguages
where alias = @aliaslang end
-- Учетная запись пользователя для входа в SQL Server
exec sp_addlogin @loginame = @namUS, @defdb = @namDB,
@deflanguage = @namenlang
exec sp_addsrvrolemember @namUS,'dbcreator'
exec sp_addsrvrolemember @namUS,'bulkadmin'
-- Подключение пользователя к базам данных
exec sp_adduser @namUS,@namUS,'public'
use msdb
exec sp_adduser @namUS,@namUS,'db_owner'
use tempdb
exec sp_adduser @namUS,@namUS,'public'
use master
-- Установка владельца БД
select @crEX='use '+@namDB+char(10)+
' exec sp_changedbowner '''+ @namUS+''''+char(10)
exec (@crEX)
select @crEX='grant execute on xp_cmdshell to '+@namUS+
' grant execute on xp_readerrorlog to '+@namUS
exec(@crEX)
if DataBaseProperty(@namDB,'IsDboOnly') = 0
exec sp_dboption @namDB,'dbo use only','TRUE' end
go
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как добавить пользователя в БД SQL Server средствами SQL?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]