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

Откуда: Russia
Сообщений: 43
Здравствуйте!
Подскажите, плиз, каким скриптом можно массово отвязать юзеров БД (кроме некоторых избранных) от логина сервера MS SQL?
30 мар 15, 09:47    [17448261]     Ответить | Цитировать Сообщить модератору
 Re: Отвязать юзеров БД от логина  [new]
Glory
Member

Откуда:
Сообщений: 104751
drop user ..
create user ...
30 мар 15, 09:49    [17448270]     Ответить | Цитировать Сообщить модератору
 Re: Отвязать юзеров БД от логина  [new]
Быкапер
Member

Откуда: Russia
Сообщений: 43
Спасибо, конечно, но по-другом никак не получится? Удалять нежелательно.
30 мар 15, 09:53    [17448286]     Ответить | Цитировать Сообщить модератору
 Re: Отвязать юзеров БД от логина  [new]
Быкапер
Member

Откуда: Russia
Сообщений: 43
Удалить юзера (drop user ...) не получается, выходит сообщение:

The database principal owns a schema in the database, and cannot be dropped.

Может быть, есть команда alter user...
30 мар 15, 10:37    [17448481]     Ответить | Цитировать Сообщить модератору
 Re: Отвязать юзеров БД от логина  [new]
Glory
Member

Откуда:
Сообщений: 104751
Быкапер
Может быть, есть команда alter user...

Команда alter user есть.
И в хелпе даже написано, что именно она позволяет сделать.
А все остальное, что там не описано, клманда не позволяет сделать.
30 мар 15, 10:39    [17448492]     Ответить | Цитировать Сообщить модератору
 Re: Отвязать юзеров БД от логина  [new]
o-o
Guest
Быкапер
Удалить юзера (drop user ...) не получается, выходит сообщение:

The database principal owns a schema in the database, and cannot be dropped.

Может быть, есть команда alter user...

если в схеме есть объекты, сначала их придется перенести, например в dbo.
alter schema dbo transfer MySch.MyObj

если это пустая схема, созданная попутно командой sp_adduser,
то прокатит sp_dropuser
30 мар 15, 11:02    [17448635]     Ответить | Цитировать Сообщить модератору
 Re: Отвязать юзеров БД от логина  [new]
Быкапер
Member

Откуда: Russia
Сообщений: 43
Спасибо! Как раз то, что нужно.
30 мар 15, 11:25    [17448826]     Ответить | Цитировать Сообщить модератору
 Re: Отвязать юзеров БД от логина  [new]
Glory
Member

Откуда:
Сообщений: 104751
Быкапер
Спасибо! Как раз то, что нужно.

А в чем смысл наличия такого количества пользователей не отмапленных в логины ?
30 мар 15, 11:27    [17448837]     Ответить | Цитировать Сообщить модератору
 Re: Отвязать юзеров БД от логина  [new]
Быкапер
Member

Откуда: Russia
Сообщений: 43
Чтобы в БД пока не заходили.
30 мар 15, 15:45    [17450588]     Ответить | Цитировать Сообщить модератору
 Re: Отвязать юзеров БД от логина  [new]
Glory
Member

Откуда:
Сообщений: 104751
Быкапер
Чтобы в БД пока не заходили.

Мда.
REVOKE CONNECT/GRANT CONNECT
30 мар 15, 15:49    [17450612]     Ответить | Цитировать Сообщить модератору
 Re: Отвязать юзеров БД от логина  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8828
Сурово, отрезать ноги, чтобы в магазин не ходил. У вас каждый пользователь имеет в базе индивидуальные права? Роль БД для слабаков, видимо :)
30 мар 15, 16:19    [17450751]     Ответить | Цитировать Сообщить модератору
 Re: Отвязать юзеров БД от логина  [new]
Быкапер
Member

Откуда: Russia
Сообщений: 43
Glory
Быкапер
Чтобы в БД пока не заходили.

Мда.
REVOKE CONNECT/GRANT CONNECT


Отрезать ноги - это в смысле отвязать юзера от логина или REVOKE CONNECT?
30 мар 15, 17:14    [17451084]     Ответить | Цитировать Сообщить модератору
 Re: Отвязать юзеров БД от логина  [new]
Glory
Member

Откуда:
Сообщений: 104751
Быкапер
Отрезать ноги - это в смысле отвязать юзера от логина или REVOKE CONNECT?

разумеется первое
https://msdn.microsoft.com/ru-ru/library/bb522682.aspx
<db_state_option> ::=
Управляет состоянием базы данных.

OFFLINE
База данных аккуратно закрыта и помечена как вне сети. В режиме «вне сети» базу данных изменять нельзя.
ONLINE
База данных открыта и доступна для использования.
EMERGENCY
База данных помечена как READ_ONLY, ведение журнала отключено и доступ возможен только элементам предопределенной роли сервера sysadmin.

<db_user_access_option> ::=
Управляет пользовательским доступом к базе данных.
SINGLE_USER
Указывает, что только один пользователь одновременно может обращаться к базе данных.

RESTRICTED_USER
Предложение RESTRICTED_USER позволяет подключаться к базе данных только членам предопределенных ролей базы данных db_owner и предопределенной роли сервера dbcreator и sysadmin, количество соединений при этом не ограничивается.
30 мар 15, 17:50    [17451288]     Ответить | Цитировать Сообщить модератору
 Re: Отвязать юзеров БД от логина  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8828
Быкапер, ну как... С группами было бы проще - нужных пользователей перенести в "хорошую" группу, а группе ненужных прокликать несколько галок на явный запрет операций. Права группе можно выдать на уровне базы данных, а не каждого объекта.
30 мар 15, 17:51    [17451290]     Ответить | Цитировать Сообщить модератору
 Re: Отвязать юзеров БД от логина  [new]
Быкапер
Member

Откуда: Russia
Сообщений: 43
Пользователей около 700, разбираться, кто в какой группе, долго. Так что сделал REVOKE CONNECT. Спасибо за ценный совет!
30 мар 15, 17:58    [17451326]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить