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

Откуда: Москва
Сообщений: 1053
Добрый день,

Не могу удалить доменный логин из MS SQL сервера. Сотрудник давно уволился, т.е. его нет в домене, но на сервере остался. Решили удалить оттуда. Выдается ошибка: Login XXX\YYY has granted one or more permission(s). Revoke the permission(s) before dropping the login. Посмотрела вроде нет никаких пермишинов. Смотрела в пропертях логина. Джобы тоже под этим логином не работают.

Где еще смотреть?
2 окт 14, 17:25    [16651847]     Ответить | Цитировать Сообщить модератору
 Re: Не могу удалить доменный логин  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8826
Схемы, разрешения уровня базы данных.
2 окт 14, 17:33    [16651922]     Ответить | Цитировать Сообщить модератору
 Re: Не могу удалить доменный логин  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
https://www.sql.ru/forum/afsearch.aspx?s=has granted one or more permission&submit=?????&bid=1

А вообще, его достаточно или в AD заблокировать, или отключить в самом MSSQL.
2 окт 14, 17:34    [16651926]     Ответить | Цитировать Сообщить модератору
 Re: Не могу удалить доменный логин  [new]
nizamovich
Member

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

может юзер owner схемы ?

SELECT s.name
FROM sys.schemas s
WHERE s.principal_id = USER_ID('XXX\YYY');

ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo;
2 окт 14, 17:34    [16651931]     Ответить | Цитировать Сообщить модератору
 Re: Не могу удалить доменный логин  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8826
Кажется понял... От имени этого логина выданы другие разрешения (granted), базы тут непричём.
2 окт 14, 17:35    [16651933]     Ответить | Цитировать Сообщить модератору
 Re: Не могу удалить доменный логин  [new]
o-o
Guest
select object_name(p.major_id) [object_name], suser_name(p.grantee_principal_id) [grantee_name], *  
from sys.server_permissions p 
where p.grantor_principal_id = suser_id('XXX\YYY');

подобная тема, но про юзера, вчера поднималась, скрипт оттуда же взят и под логин подправлен,
а дальнейшие действия daw там же описал:
msg 15284
3 окт 14, 01:59    [16653816]     Ответить | Цитировать Сообщить модератору
 Re: Не могу удалить доменный логин  [new]
Hel975
Member

Откуда: Москва
Сообщений: 1053
o-o
подобная тема, но про юзера, вчера поднималась, скрипт оттуда же взят и под логин подправлен,
а дальнейшие действия daw там же описал:
msg 15284


Спасибо за наводку. Селект возвращает одну запись с классом ENDPOINT по major_id нашла енд поинт в sys.endpoints и пишу:

USE master;
REVOKE CONNECT ON ENDPOINT::SB_EndPoint FROM [XXX\YYYY];
GO


Получаю теперь ошибку: Cannot grant, deny, or revoke permissions to sa, dbo, entity owner, information_schema, sys, or yourself.

У логина точно нет никаких ролей, кроме public и то ни каких базах паблика нет. Как посмотреть entity owner?
3 окт 14, 12:14    [16655241]     Ответить | Цитировать Сообщить модератору
 Re: Не могу удалить доменный логин  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
Hel975
REVOKE CONNECT ON ENDPOINT::SB_EndPoint FROM [XXX\YYYY];



да не from [XXX\YYYY], а from тот_кто_написан_в_grantee_name.
это не [XXX\YYYY]-у разрешения дали. это он сам дал grantee_name разрешение от своего имени - это в системных таблицах прописывается. и отнимать надо у grantee_name.
3 окт 14, 12:21    [16655320]     Ответить | Цитировать Сообщить модератору
 Re: Не могу удалить доменный логин  [new]
Hel975
Member

Откуда: Москва
Сообщений: 1053
daw
Hel975
REVOKE CONNECT ON ENDPOINT::SB_EndPoint FROM [XXX\YYYY];



да не from [XXX\YYYY], а from тот_кто_написан_в_grantee_name.
это не [XXX\YYYY]-у разрешения дали. это он сам дал grantee_name разрешение от своего имени - это в системных таблицах прописывается. и отнимать надо у grantee_name.


В grantee_name был прописан public. Сделала:

]
REVOKE CONNECT ON ENDPOINT::SB_EndPoint FROM public;

Он выполнился, но теперь я все равно не могу удалить доменный логин с сервера, пишет другую ошибку: The server principal owns an endpoint and cannot be dropped.
3 окт 14, 12:37    [16655460]     Ответить | Цитировать Сообщить модератору
 Re: Не могу удалить доменный логин  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Hel975
Он выполнился, но теперь я все равно не могу удалить доменный логин с сервера, пишет другую ошибку: The server principal owns an endpoint and cannot be dropped.
Теперь надо или менять ендпоинту владельца, или удалять эндпоинт.
3 окт 14, 13:09    [16655825]     Ответить | Цитировать Сообщить модератору
 Re: Не могу удалить доменный логин  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
Hel975
Он выполнился, но теперь я все равно не могу удалить доменный логин с сервера, пишет другую ошибку: The server principal owns an endpoint and cannot be dropped.


ну так, найдите этот эндпойнт (по sys.endpoints) и поменяйте ему владельца на кого-нибудь другого (alter authorization).
3 окт 14, 13:10    [16655843]     Ответить | Цитировать Сообщить модератору
 Re: Не могу удалить доменный логин  [new]
Hel975
Member

Откуда: Москва
Сообщений: 1053
daw
ну так, найдите этот эндпойнт (по sys.endpoints) и поменяйте ему владельца на кого-нибудь другого (alter authorization).


Это понятно, но в sys.endpoints не написан владелец. Как его посмотреть?
3 окт 14, 13:28    [16655996]     Ответить | Цитировать Сообщить модератору
 Re: Не могу удалить доменный логин  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
Hel975
Это понятно, но в sys.endpoints не написан владелец. Как его посмотреть?


в principal_id он прописан.
ну и, что-то мне подсказывает, что это как раз тот самый SB_EndPoint.
3 окт 14, 13:40    [16656125]     Ответить | Цитировать Сообщить модератору
 Re: Не могу удалить доменный логин  [new]
o-o
Guest
Hel975
daw
ну так, найдите этот эндпойнт (по sys.endpoints) и поменяйте ему владельца на кого-нибудь другого (alter authorization).


Это понятно, но в sys.endpoints не написан владелец. Как его посмотреть?

1. все там написано:
sys.endpoints (Transact-SQL)
principal_id int ID of the server principal that created and owns this endpoint. Is nullable.

2. чтобы нового владельца назначить, можно старого и не знать, его не надо в команде указывать, только нового
3 окт 14, 13:41    [16656132]     Ответить | Цитировать Сообщить модератору
 Re: Не могу удалить доменный логин  [new]
Hel975
Member

Откуда: Москва
Сообщений: 1053
o-o
Hel975
пропущено...


Это понятно, но в sys.endpoints не написан владелец. Как его посмотреть?

1. все там написано:
sys.endpoints (Transact-SQL)
principal_id int ID of the server principal that created and owns this endpoint. Is nullable.

2. чтобы нового владельца назначить, можно старого и не знать, его не надо в команде указывать, только нового


Спасибо разобралась. Этот же доменный логин и был владельцем эндпоинта.
3 окт 14, 14:33    [16656532]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить