Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Проблемное имя пользователя  [new]
Странный Юзер
Guest
Ситуация:
sp_helplogins 'Domain\Username';

получаю следющее (второй рекордсет):
LoginNameDBNameUserNameUserOrAlias
DOMAIN\USERNAMEdatabase1\DOMAIN\USERNAMEUser
DOMAIN\USERNAMEdatabase2DOMAIN\USERNAMEUser

Обратите внимание, что UserName для database1 начинается с обратного слэша. Чем мне это чревато:
use database1
go
grant execute on dbo.up_someproc to [DOMAIN\USERNAME];

Msg 2760, Level 16, State 1, Line 1
The specified schema name "DOMAIN\USERNAME" either does not exist or you do not have permission to use it.

Если попробовать указать имя пользователя так, как его выводит sp_helplogins - с лидирующим слэшом:
grant execute on dbo.up_someproc to [\DOMAIN\USERNAME]

Msg 15151, Level 16, State 1, Line 1
Cannot find the user '\DOMAIN\USERNAME', because it does not exist or you do not have permission.

Создать пользователя под логин тоже не получается:
create user [DOMAIN\USERNAME] for login [Domain\Username] with default_schema=[dbo]

Msg 15022, Level 16, State 1, Line 1
The specified user name is already aliased.

Как можно вылечить такое?
P.S.
select @@version

Microsoft SQL Server 2005 - 9.00.4035.00 (X64) 
Nov 24 2008 16:17:31
Copyright (c) 1988-2005 Microsoft Corporation
Standard Edition (64-bit) on Windows NT 6.0 (Build 6001: Service Pack 1)
5 ноя 13, 09:34    [15076921]     Ответить | Цитировать Сообщить модератору
 Re: Проблемное имя пользователя  [new]
Александр52
Member

Откуда: Кокосовые острова ส็็็็็
Сообщений: 5133
Странный Юзер, пересоздать пользователя бизнес позволяет?
5 ноя 13, 09:36    [15076928]     Ответить | Цитировать Сообщить модератору
 Re: Проблемное имя пользователя  [new]
Jaffar
Member

Откуда:
Сообщений: 633
Странный Юзер,

Щас набегут спецы, - ответят,
а пока попробуйте так "\DOMAIN\User" - т.е. с ковычками.
5 ноя 13, 09:39    [15076939]     Ответить | Цитировать Сообщить модератору
 Re: Проблемное имя пользователя  [new]
Странный Юзер
Guest
Кажется, разобрался. Это был т.н. aliased user, созданный через sp_addalias, и смапленный на dbo - это видно из отработки
sp_helpuser 'DOMAIN\Username' 

- в поле UserName у него выводилось dbo.
После сброса алиаса:
use database1
go
sp_dropalias 'DOMAIN\Username'

для начала пропала запись по database1 из второй выборки sp_helplogins. После этого вполне нормально отработал
create user [DOMAIN\USERNAME] for login [Domain\Username] with default_schema=[dbo]

и в выборке sp_helplogins этот пользователь получился без лидирующего слэша.
Далее нормально отработали гранты с указанием имени этого пользователя.
Получается, что в случае такого вот aliased user грант надо было выдавать на того, на кого заалиасили логин - т.е. на dbo. По моему скромному, это как-то слишком. Уж лучше по юзеру на логин.
Согласно документации, sp_addalias/sp_dropalias - анахронизмы. Проверил на 2008 R2 - не работают, т.к. не найдены.
Тему можно считать разобранной.
5 ноя 13, 12:56    [15078098]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить