Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
А как проще перенести логины?
|
|||
|---|---|---|---|
|
#18+
Кто подскажет, как проще всего перенести логины с одной машины на другую? Есть, конечно "ломовые" варианты, но наверное есть какой-нибудь изящный и нетрудоемкий способ. Заранее благодарен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2001, 11:55 |
|
||
|
А как проще перенести логины?
|
|||
|---|---|---|---|
|
#18+
Если речь идет о SQL2000, то для DTS есть соответствующий тип задания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2001, 12:03 |
|
||
|
А как проще перенести логины?
|
|||
|---|---|---|---|
|
#18+
Виноват! Речь идет о 7.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2001, 13:26 |
|
||
|
А как проще перенести логины?
|
|||
|---|---|---|---|
|
#18+
Я использую процедурку: CREATE proc dbo.generate_add_login @login sysname = NULL as set nocount on declare @add_login varchar(2000) if @login is not null and not exists (select name from master..syslogins where name = @login) begin raiserror (15007,0,1,@login) -- no login found set nocount off return 1 end if @login is null begin declare cur_logins cursor static for select name from master..syslogins where password is not null and sid <> 0x01 open cur_logins fetch next from cur_logins into @login while @@fetch_status = 0 begin select @add_login = 'exec sp_addlogin @loginame='''+ @login + ''', @sid=' + dbo.fn_hexadecimal(sid) + ', @passwd=' + dbo.fn_hexadecimal(convert(varbinary(256),password)) + ', @encryptopt=''skip_encryption''' from master..syslogins where name = @login print @add_login fetch next from cur_logins into @login end close cur_logins deallocate cur_logins end else begin select @add_login = 'exec sp_addlogin @loginame='''+ @login + ''', @sid=' + dbo.fn_hexadecimal(sid) + ', @passwd=' + dbo.fn_hexadecimal(convert(varbinary(256),password)) + ', @encryptopt=''skip_encryption''' from master..syslogins where name = @login print @add_login end set nocount off return 0 GO При запуске на сервере-источнике она генерит sp_addlogin statements, которые потом надо выполнить на сервере-приемнике. В процедурке используется функция: dbo.fn_hexadecimal(varbinary(255)) для конвертации binary в вид 0x[0-9,A-F]+ Вот ее текст: CREATE FUNCTION dbo.fn_hexadecimal (@binvalue varbinary(255)) RETURNS varchar(255) AS BEGIN declare @charvalue varchar(255) declare @i int declare @length int declare @hexstring char(16) set @charvalue = '0x' set @i = 1 set @length = datalength(@binvalue) set @hexstring = '0123456789ABCDEF' while (@i <= @length) begin declare @tempint int declare @firstint int declare @secondint int set @tempint = convert(int, substring(@binvalue,@i,1)) set @firstint = floor(@tempint/16) set @secondint = @tempint - (@firstint*16) set @charvalue = @charvalue + substring(@hexstring, @firstint+1, 1) + substring(@hexstring, @secondint+1, 1) set @i = @i + 1 end RETURN @charvalue END Не составляет проблемы переписать ее как процедрку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2001, 14:37 |
|
||
|
А как проще перенести логины?
|
|||
|---|---|---|---|
|
#18+
Есть вопрос по generate_add_login. А почему бы в курсоре кроме login, не вытащить еще и sid и password, а потом уже не обращаться к системной таблице. Или наоборот, обойтись без курсора и print и делать все в select? Или есть какая-то закавыка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2001, 06:24 |
|
||
|
А как проще перенести логины?
|
|||
|---|---|---|---|
|
#18+
А никто не подскажет хитрый финт ушами, дабы отследить в каких базах Login имеет Permitions и к каким группам он принадлежит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2001, 09:27 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32016507&tid=1825105]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
41ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 269ms |
| total: | 396ms |

| 0 / 0 |
