Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Имена входа при репликации  [new]
vah
Member

Откуда:
Сообщений: 2694
Скажите пожалуйста, возможно ли реплицировать имена входа сервера?

Заранее благодарен.
30 авг 12, 16:47    [13090116]     Ответить | Цитировать Сообщить модератору
 Re: Имена входа при репликации  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
нет
30 авг 12, 16:51    [13090157]     Ответить | Цитировать Сообщить модератору
 Re: Имена входа при репликации  [new]
gang
Member

Откуда:
Сообщений: 1394
Реплицировать - нет. Можно периодически синхронизировать через линк скриптом.
30 авг 12, 17:08    [13090313]     Ответить | Цитировать Сообщить модератору
 Re: Имена входа при репликации  [new]
vah
Member

Откуда:
Сообщений: 2694
gang
Реплицировать - нет. Можно периодически синхронизировать через линк скриптом.


А в какой таблице можно увидеть все имена входа?
30 авг 12, 17:18    [13090395]     Ответить | Цитировать Сообщить модератору
 Re: Имена входа при репликации  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
vah
gang
Реплицировать - нет. Можно периодически синхронизировать через линк скриптом.


А в какой таблице можно увидеть все имена входа?
select * from master.sys.syslogins


Сообщение было отредактировано: 30 авг 12, 17:19
30 авг 12, 17:19    [13090404]     Ответить | Цитировать Сообщить модератору
 Re: Имена входа при репликации  [new]
nicescar
Member

Откуда:
Сообщений: 94
vah
А в какой таблице можно увидеть все имена входа?

Например, sys.syslogins, sys.server_principals
30 авг 12, 17:22    [13090423]     Ответить | Цитировать Сообщить модератору
 Re: Имена входа при репликации  [new]
invm
Member

Откуда: Москва
Сообщений: 9824
Ну почему же нельзя? Можно.
DDL-триггер уровня сервера + процедура, создающая или изменяющая логин + репликация вызова этой процедуры + служебная БД, где эта процедура живет.
30 авг 12, 17:23    [13090434]     Ответить | Цитировать Сообщить модератору
 Re: Имена входа при репликации  [new]
nicescar
Member

Откуда:
Сообщений: 94
invm,
Три триггера на CREATE/ALTER/DROP LOGIN + хэш пароля + процедурки.. а почему нет, собственно.
30 авг 12, 17:28    [13090491]     Ответить | Цитировать Сообщить модератору
 Re: Имена входа при репликации  [new]
gang
Member

Откуда:
Сообщений: 1394
nicescar
invm,
Три триггера на CREATE/ALTER/DROP LOGIN + хэш пароля + процедурки.. а почему нет, собственно.

Коллеги, человек только что спросил где лежат логины, а вы ему предлагаете "Три триггера на CREATE/ALTER/DROP LOGIN + хэш пароля + процедурки". Это жестко =)
vah, если не нужна онлайновость в этом вопросе, то посмотрите вот тут про трансфер логинов через SSIS. Там есть графические интерфейсы.
30 авг 12, 17:48    [13090664]     Ответить | Цитировать Сообщить модератору
 Re: Имена входа при репликации  [new]
invm
Member

Откуда: Москва
Сообщений: 9824
gang,

1. Дорогу осилит идущий.
2. Форум разные люди читают. Кому-то может и вариант с репликацией подойдет.
30 авг 12, 18:04    [13090771]     Ответить | Цитировать Сообщить модератору
 Re: Имена входа при репликации  [new]
vah
Member

Откуда:
Сообщений: 2694
invm
gang,

1. Дорогу осилит идущий.
2. Форум разные люди читают. Кому-то может и вариант с репликацией подойдет.


Вот как я копирую пользователей на другой сервак:

автор
DECLARE @us varchar(2000)
DECLARE @login varchar(2000)
DECLARE @sql varchar(2000)
set @login='dsa'

DECLARE Employee_Cursor CURSOR FOR
select loginname from master.sys.syslogins
where loginname=@login

OPEN Employee_Cursor

FETCH NEXT FROM Employee_Cursor
INTO @us
WHILE @@FETCH_STATUS = 0
BEGIN
set @sql= 'IF NOT EXISTS (SELECT * FROM sys.server_principals WHERE name = N'''+@us+''')
begin
CREATE LOGIN ['+@us+'] WITH PASSWORD=N''qawsedrftg'', DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[русский], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
end'

print @sql

--exec (@sql)
FETCH NEXT FROM Employee_Cursor INTO @us
END

CLOSE Employee_Cursor
DEALLOCATE Employee_Cursor










DECLARE Employee_Cursor1 CURSOR FOR
select loginname from master.sys.syslogins
where loginname=@login

OPEN Employee_Cursor1

FETCH NEXT FROM Employee_Cursor1
INTO @us
WHILE @@FETCH_STATUS = 0
BEGIN
set @sql= '
use sss
IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N'''+@us+''')
begin
CREATE USER ['+@us+'] FOR LOGIN ['+@us+'] WITH DEFAULT_SCHEMA=[dbo]
end
use ddd
IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N'''+@us+''')
begin
CREATE USER ['+@us+'] FOR LOGIN ['+@us+'] WITH DEFAULT_SCHEMA=[dbo]
end'

print @sql

--exec (@sql)
FETCH NEXT FROM Employee_Cursor1 INTO @us
END

CLOSE Employee_Cursor1
DEALLOCATE Employee_Cursor1






set @sql= '
use sss
EXEC sys.sp_addrolemember @rolename=N''a1'', @membername=N'''+@us+'''
EXEC sys.sp_addrolemember @rolename=N''a2'', @membername=N'''+@us+'''
EXEC sys.sp_addrolemember @rolename=N''a3'', @membername=N'''+@us+'''
use ddd
EXEC sys.sp_addrolemember @rolename=N''a1'', @membername=N'''+@us+'''
EXEC sys.sp_addrolemember @rolename=N''a2'', @membername=N'''+@us+'''
EXEC sys.sp_addrolemember @rolename=N''a3'', @membername=N'''+@us+''''

print @sql


результат принтов - выполняю на подписчике


Правильно так или можно как-то еще автоматизировать?
31 авг 12, 15:31    [13095743]     Ответить | Цитировать Сообщить модератору
 Re: Имена входа при репликации  [new]
gang
Member

Откуда:
Сообщений: 1394
vah,
Повторное создание логинов скриптом вполне приемлемо в случае виндовой аутентификации. При SQL-ной, вновь созданный логин будет иметь sid отличный от исходного. Если БД - получатель поднята из бекапа, то в ней соответствующий данному логину пользователь будет прописан с исходным sid, т.е. автоматически они не свяжутся. Восстанавливать привязку нужно будет либо пересозданием пользователя, либо через sp_change_users_login. Кроме того пересоздание SQL логинов подразумевает явное указание пароля. Если он не известен, то при пересоздании логина скриптом его нужно будет сменить. Есть механизм переноса SQL логинов без указания нового пароля через копирование его хеша. Вот тут статейка KB.
3 сен 12, 09:24    [13103251]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить