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

Откуда:
Сообщений: 26
Добрый день!
MS Server 2008 R2
Есть 80 баз, 15 пользователей, при добавлении новой базы приходится делать сопоставление базы каждому пользователю, что занимает много времени, администратору sa сопоставление делается автоматически. Можно ли сделать такое автоматическое сопоставление и для всех других пользователей?
Спасибо
29 окт 15, 13:27    [18343158]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое сопоставление подключаемой базы  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36903
Т.е. запуск скрипта из 15 строк -- это занимает много времени? Ну, DDL-триггер напишите.
29 окт 15, 13:29    [18343169]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое сопоставление подключаемой базы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Интересно
Можно ли сделать такое автоматическое сопоставление и для всех других пользователей?

"Автоматически" для вас это
- нажать где-то какую-то кнопочку
или
- написать скрипт и запустить его ?
29 окт 15, 13:29    [18343173]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое сопоставление подключаемой базы  [new]
o-o
Guest
надо что, просто 15 логинов иметь отмапленными
во все вновь создаваемые базы?
в моделе их юзерами создать и все
29 окт 15, 13:35    [18343225]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое сопоставление подключаемой базы  [new]
Интересно
Member

Откуда:
Сообщений: 26
когда открываешь Свойства пользователя - Вкладка сопоставление пользователей, то ждешь минут 5, далее ставлю галку напротив базы, сохранить и снова 5 минут, 15 пользователей - 2 часа времени.
Автоматически - это при добавлении новой бд, чтобы база сопоставлялась всем пользователям по умолчанию без других операций.
29 окт 15, 13:40    [18343261]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое сопоставление подключаемой базы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Интересно
когда открываешь Свойства пользователя - Вкладка сопоставление пользователей, то ждешь минут 5, далее ставлю галку напротив базы, сохранить и снова 5 минут, 15 пользователей - 2 часа времени.
Автоматически - это при добавлении новой бд, чтобы база сопоставлялась всем пользователям по умолчанию без других операций.

И что вам мешает вместо "открываешь Свойства пользователя " написать скрипт ?
29 окт 15, 13:41    [18343267]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое сопоставление подключаемой базы  [new]
Интересно
Member

Откуда:
Сообщений: 26
Glory, поверхностные знания в ms server
29 окт 15, 13:46    [18343318]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое сопоставление подключаемой базы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Интересно
Glory, поверхностные знания в ms server

Специально для вас в большинстве диалогов студии добавли кнопочку Script.
Которая конвертируют ваши клики мышкой в серверный скрипт.
Так же в этих даилогах присутствует кнопка Help, по которой вызывается статья хелпа, где приводится описание и того, как действия в диалоге можно оформить на TSQL

Сообщение было отредактировано: 29 окт 15, 13:49
29 окт 15, 13:48    [18343336]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое сопоставление подключаемой базы  [new]
Интересно
Member

Откуда:
Сообщений: 26
Glory, спасибо)
29 окт 15, 13:51    [18343362]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое сопоставление подключаемой базы  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31331
Интересно
поверхностные знания в ms server
Скрипт написать - дело простое. Изучите справку по процедуре sp_change_users_login, и научитесь писать циклы. Это всё элементарные вещи, это даже не требования к знаниям сиквелиста.

Если вы не программист/администратор, этим постоянно не занимаетесь, и вам неохота ничего изучать, то тогда непонятно, зачем вам всё это? Один раз, если приспичило, можно и в интерфейсе мышкой потыкать.
29 окт 15, 13:51    [18343365]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое сопоставление подключаемой базы  [new]
Интересно
Member

Откуда:
Сообщений: 26
alexeyvg,в последнее время часто приходится сталкиваться с этим. Спасибо за совет!
29 окт 15, 13:56    [18343410]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое сопоставление подключаемой базы  [new]
o-o
Guest
ну и зачем база model тоже можно бы и почитать.
а то встречаем незнакомое слово и сразу вариант отметаем.
а все, что надо *одинаково* иметь во всех базах, достаточно в model-е завести
29 окт 15, 14:00    [18343441]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое сопоставление подключаемой базы  [new]
o-o
Guest
alexeyvg
Изучите справку по процедуре sp_change_users_login

вижу этого зверя в первый раз.
это аналог ALTER USER WITH LOGIN в 2000-ом?
наверное, его скоро снесут за древностью лет,
при всем моем уважении к 2000-ому.

только вроде ТС-у надо юзеров *впервые создать* в очередной только что созданной базе,
а не пофиксить принесенных вместе с базой с другого инстанса.
предлагаю лучше изучить CREATE USER (Transact-SQL)
29 окт 15, 14:10    [18343514]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое сопоставление подключаемой базы  [new]
Интересно
Member

Откуда:
Сообщений: 26
o-o, вам тоже спасибо!)
29 окт 15, 14:22    [18343614]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое сопоставление подключаемой базы  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31331
o-o
alexeyvg
Изучите справку по процедуре sp_change_users_login

вижу этого зверя в первый раз.
это аналог ALTER USER WITH LOGIN в 2000-ом?
наверное, его скоро снесут за древностью лет,
при всем моем уважении к 2000-ому.
:-)
Да, просто привык пользоваться.
BOL
В будущей версии Microsoft SQL Server эта возможность будет удалена. Избегайте использования этой возможности в новых разработках и запланируйте изменение существующих приложений, в которых она применяется. Используйте вместо этого команду ALTER USER.

o-o
только вроде ТС-у надо юзеров *впервые создать* в очередной только что созданной базе,
а не пофиксить принесенных вместе с базой с другого инстанса.
Да, что то я напутал, думал про восстановление базы.

При создании новой базы нужно писать скрипт создавать пользователей для всех логинов командой CREATE USER, наделить их правами sp_addrolemember , либо заранее создать пользоваетелей в базе model
29 окт 15, 14:26    [18343647]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое сопоставление подключаемой базы  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36903
o-o
ну и зачем база model тоже можно бы и почитать.
а то встречаем незнакомое слово и сразу вариант отметаем.
а все, что надо *одинаково* иметь во всех базах, достаточно в model-е завести
База model не решает проблему добавления нового пользователя.
29 окт 15, 14:34    [18343715]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое сопоставление подключаемой базы  [new]
o-o
Guest
Гавриленко Сергей Алексеевич
o-o
ну и зачем база model тоже можно бы и почитать.
а то встречаем незнакомое слово и сразу вариант отметаем.
а все, что надо *одинаково* иметь во всех базах, достаточно в model-е завести
База model не решает проблему добавления нового пользователя.

в каком это смысле не решает?
поясните.
я имею в виду вот это:
если у меня есть логины l1,...,l15,
я 1 раз в моделе создаю 15 юзеров:
create user l1 from login l1;
...
create user l1 from login l15;

после чего в каждой вновь создаваемой базе у меня будут все 15 юзеров l1,...,l15
29 окт 15, 14:38    [18343746]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое сопоставление подключаемой базы  [new]
o-o
Guest
или в смысле, если новый логин заведут?
тоже его в model пускай мапят.
и во все вновь создаваемые базы он добавляться будет.
а что в уже имеющиеся не попадет,
так ТС разве спрашивал "как мне новый логин отмапить во все имеющиеся базы?"
он наоборот спросил "как имеющихся отмапить в новые базы"
а так, пусть изучает CREATE USER, ссылка выше
29 окт 15, 14:46    [18343846]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Автоматическое сопоставление подключаемой базы  [new]
Интересно
Member

Откуда:
Сообщений: 26
Добрый вечер :)

Подскажите нельзя ли пустить этот процесс по циклу ?

Ругается на переменную @name

create table #tb (number int, name varchar )
declare @min int, @max int, @name varchar

insert into #tb
select row_number () over (order by name), name from sys.sql_logins where principal_id > 600

set @min = 1
set @max = (select max(number) from #tb)

while @min <= @max
	begin
		set @name = (select name from #tb where number = @min)
		CREATE USER [@name] FOR LOGIN [@name]

		set @min = @min + 1
	end

drop table #tb
26 апр 17, 22:29    [20438049]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое сопоставление подключаемой базы  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31331
Интересно
Подскажите нельзя ли пустить этот процесс по циклу ?
У вас целая куча ошибок.
Например, длину переменной @name вы сделали равной 1

А квадратными скобками ограничивают имя.
То есть CREATE USER [@name] создаст пользователя с именем "@name"
27 апр 17, 01:01    [20438221]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое сопоставление подключаемой базы  [new]
o-o
Guest
Да его главная ошибка, что динамику не собрал.
За 2 года причем
27 апр 17, 07:19    [20438322]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое сопоставление подключаемой базы  [new]
Интересно
Member

Откуда:
Сообщений: 26
alexeyvg
Интересно
Подскажите нельзя ли пустить этот процесс по циклу ?
У вас целая куча ошибок.
Например, длину переменной @name вы сделали равной 1

Это да, скопировал не тот пример, нужно varchar (30)

alexeyvg
А квадратными скобками ограничивают имя.
То есть CREATE USER [@name] создаст пользователя с именем "@name"

Да, это я понял. Без скобок тоже не выходит
Неправильный синтаксис около конструкции "@name"


o-o
Интересно
Да его главная ошибка, что динамику не собрал.
За 2 года причем

Подскажите как собрать динамику, а то два года уже сижу :)
27 апр 17, 11:01    [20438981]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое сопоставление подключаемой базы  [new]
Шыфл
Member

Откуда: Прага
Сообщений: 776
Интересно
Подскажите как собрать динамику, а то два года уже сижу :)

учус exec
exec ('CREATE USER [' + @name + '] FOR LOGIN [' + @name+ ']')
27 апр 17, 11:32    [20439167]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое сопоставление подключаемой базы  [new]
rnk
Member

Откуда:
Сообщений: 126
Шыфл
exec ('CREATE USER [' + @name + '] FOR LOGIN [' + @name+ ']')

Чуть корректнее так:
exec ('CREATE USER QUOTENAME(' + @name + ') FOR LOGIN QUOTENAME(' + @name+ ')')
27 апр 17, 13:06    [20439702]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое сопоставление подключаемой базы  [new]
rnk
Member

Откуда:
Сообщений: 126
Сорри, так:
exec ('CREATE USER ' + QUOTENAME(@name) + ' FOR LOGIN ' + QUOTENAME(@name))
27 апр 17, 13:08    [20439715]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить