Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Jenyok2 Member Откуда: Сообщений: 25 |
Такой вопрос. . Есть рабочий сервер MS SQL - SSS . На этом сервере есть база данных ХХХ . В базе данных ХХХ есть пользователи базы данных, которые продублированы как имена входа, т.е., например, есть пользователь YYY базы данных ХХХ , а также есть имя входа YYY , имя входа и пользователь базы данных ХХХ связаны (равны по имени) между собой. . Есть новый сервер MS SQL - SSSNNN . На этом сервере SSSNNN создана пустая база данных ХХХNNN , аналогичная базе данных XXX сервера SSS . Устанавливаем DUMP базы данных ХХХ с сервера SSS на сервер SSSNNN в базу ХХХNNN . После установки DUMP на сервер SSSNNN пользователи базы данных XXXNNN присутствуют, например, пользователь YYY . А вот имен входа, например, имя входа - YYY на сервере SSSNNN - НЕТ !!! Для создания имени входа YYY на сервере SSSNNN для базы данных ХХХNNN необходимо сначала удалить пользователя YYY базы данных XXXNNN, а уже потом создавать имя входа, что НЕ всегда выполнимо и удобно, особенно если пользователи имеют свои схемы (являются владельцами схемы). . Вопрос. . Как на сервере SSSNNN создать имя входа YYY для базы данных XXXNNN при условии что пользователь YYY базы данных XXXNNN уже существует ? Как правильно связать имя входа YYY и имя пользователя YYY базы данных XXXNNN ? . . |
28 июн 18, 14:53 [21528693] Ответить | Цитировать Сообщить модератору |
boltnik Member Откуда: Калуга/Москва Сообщений: 144 |
Jenyok2, sp_help_revlogin или alter user <...> with login = <...> |
28 июн 18, 15:04 [21528736] Ответить | Цитировать Сообщить модератору |
Jenyok2 Member Откуда: Сообщений: 25 |
. MS SQL SERVER 2017 sp_help_revlogin такого и в помине НЕТ !!! . |
||
28 июн 18, 15:10 [21528751] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37199 |
|
||||
28 июн 18, 15:18 [21528778] Ответить | Цитировать Сообщить модератору |
boltnik Member Откуда: Калуга/Москва Сообщений: 144 |
В гугле первый результат поиска. |
||
28 июн 18, 15:22 [21528787] Ответить | Цитировать Сообщить модератору |
Jenyok2 Member Откуда: Сообщений: 25 |
. Спасибо, помогло частично. . Смысл такой, взял имена входа со старого сервера, перенес на новый. Работает. . НО !!! ПОЛЬОВАТЕЛЕЙ базы данных НЕ берет, чтобы их превратить в ИМЕНА входа. Т.е. необходимо из пользователя базы данных сделать имя входа и связать пользователя базы данных и имя входа. Аналогичным образом. . |
||||
28 июн 18, 16:56 [21529039] Ответить | Цитировать Сообщить модератору |
boltnik Member Откуда: Калуга/Москва Сообщений: 144 |
Jenyok2, Пользователи БД восстанавливаются вместе в бекапом базы. Вы же сами написали
|
||
28 июн 18, 17:06 [21529063] Ответить | Цитировать Сообщить модератору |
Jenyok2 Member Откуда: Сообщений: 25 |
. Все правильно. Пользователи базы данных восстановились. Имена входа со старого сервера перенес на новый. . НО !!! В базе данных на стром сервере есть пользователи базы данных, у которых НЕТ имен входа. Необходимо создать имя входа такое же как имя пользователя базы данных и связать вместе имя пользователя базы данных и имя входа. . |
||||
28 июн 18, 17:30 [21529208] Ответить | Цитировать Сообщить модератору |
boltnik Member Откуда: Калуга/Москва Сообщений: 144 |
Jenyok2, Никогда не сталкивался с таким. можно вручную если их не так много :D А зачем они на новом сервере, если их не было на старом? |
28 июн 18, 17:34 [21529225] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1968 |
если на старом сервере в базе есть юзеры, у которых НЕТ соответствующих логинов, то с чего вы взяли, что
??? может, эти юзеры как раз и созданы БЕЗ логина (without login)/из сертификата (from certificate)/contained. у них нет и не должно быть логина |
||||
28 июн 18, 17:42 [21529249] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8485 |
Jenyok2, внимательно проверьте - это могут быть технологические пользователи (например, владельцы базы) или потерянные, т.е. логины удалили, а снять галки с баз не озаботились перед этим. Если второй случай - можно удалять или не переносить. Для переноса логинов существует несколько автоматизированных методов: https://support.microsoft.com/ru-ru/help/918992/how-to-transfer-logins-and-passwords-between-instances-of-sql-server, задачи с составе Integration Services. |
28 июн 18, 17:44 [21529253] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1968 |
пример скрипта не дадите ли, чтобы владелец базы не в dbo отмапился, а в какого-то иного юзера? |
||
28 июн 18, 17:46 [21529268] Ответить | Цитировать Сообщить модератору |
Jenyok2 Member Откуда: Сообщений: 25 |
Проверено. Пользователи НЕ системные, НЕ сертификатные. Вопрос же задавал не зря. . Необходимо создать имя входа и привязать имя входа к имени пользователя базы данных. Руками создавать НЕ резон, так как, надо: посмотреть чем владеет и какие права у пользователя базы данных удалить имя пользователя базы данных и только потом создать имя входа, привязав все права и владения, далее имя пользователя базы данных создастся автоматически при создании имени входа. . Для одного двух я делал это руками, именно как описано выше. Если имя пользователя базы данных уже есть, то при создании имени входа будет выдана ошибка создания. . |
28 июн 18, 17:53 [21529302] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1968 |
да что за фигня-то. или же создаете логин с тем же именем и делаете существующему юзеру базы alter user with login или же создаете логин сразу с нужным сидом, как у имеющегося юзера: create login with sid и никаких огородов с правами и пересозданием юзера |
||
28 июн 18, 18:02 [21529331] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8485 |
Yasha123, да, чёт перегнул. Jenyok2 статью изучите, может пригодится. |
28 июн 18, 18:17 [21529373] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |