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

Откуда:
Сообщений: 519
[101] DDDSQL608.master.1> exec sp_dropalias;
Msg 2812, Level 16, State 62
Server 'DDDSQL608', Line 1
Could not find stored procedure 'sp_dropalias'.
[102] DDDSQL608.master.1> select @@version;
Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64) 
        Oct 19 2012 13:38:57 
        Copyright (c) Microsoft Corporation
        Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)|


Хотя документация утверждает что в 2012-м оно еще должно быть.

Не знает-ли кто как теперь удалить алиасы из старых баз данных?
29 июл 14, 17:42    [16372627]     Ответить | Цитировать Сообщить модератору
 Re: sp_dropalias исчезла в Microsoft SQL Server 2012 (SP1)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
В соседней документации написано "Removes an alias to a user in the current database from a login. sp_dropalias is provided for backward compatibility only. Use roles and the sp_droprolemember stored procedure instead of aliases."
29 июл 14, 17:53    [16372675]     Ответить | Цитировать Сообщить модератору
 Re: sp_dropalias исчезла в Microsoft SQL Server 2012 (SP1)  [new]
cvasil
Member

Откуда:
Сообщений: 519
Да знаю я. Мы уже алиасы и не используем в общем. Но в старых базах кое-где они остались. Как удалить-то теперь?
29 июл 14, 17:58    [16372716]     Ответить | Цитировать Сообщить модератору
 Re: sp_dropalias исчезла в Microsoft SQL Server 2012 (SP1)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
cvasil
Да знаю я. Мы уже алиасы и не используем в общем. Но в старых базах кое-где они остались. Как удалить-то теперь?
А с чего вы взяли, что эти "алиасы" где-то еще остались?
29 июл 14, 18:00    [16372729]     Ответить | Цитировать Сообщить модератору
 Re: sp_dropalias исчезла в Microsoft SQL Server 2012 (SP1)  [new]
cvasil
Member

Откуда:
Сообщений: 519
Соответствующие логины имеют доступ к базам, и в sys.sysusers их видно, с бэкслэшами в начале.
29 июл 14, 18:16    [16372787]     Ответить | Цитировать Сообщить модератору
 Re: sp_dropalias исчезла в Microsoft SQL Server 2012 (SP1)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
cvasil
Соответствующие логины имеют доступ к базам, и в sys.sysusers их видно, с бэкслэшами в начале.
drop user? revoke connect?
29 июл 14, 18:44    [16372874]     Ответить | Цитировать Сообщить модератору
 Re: sp_dropalias исчезла в Microsoft SQL Server 2012 (SP1)  [new]
cvasil
Member

Откуда:
Сообщений: 519
Пробовал уже, и со слэшом и без слэша. Во всех случаях говорит:

Cannot drop the user '...', because it does not exist or you do not have permission.

В общем как юзера он эти алиасы похоже не воспринимает.
29 июл 14, 18:53    [16372900]     Ответить | Цитировать Сообщить модератору
 Re: sp_dropalias исчезла в Microsoft SQL Server 2012 (SP1)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
cvasil
Пробовал уже, и со слэшом и без слэша. Во всех случаях говорит:

Cannot drop the user '...', because it does not exist or you do not have permission.
В общем как юзера он эти алиасы похоже не воспринимает.
А в sys.database_principals эти юзера-алиасы есть? И есть ли у них реальные привилегии? Ибо sys.sysusers - тоже вьюшка для обратной совместимости, может их туда "подмешивали", да забыли убрать.
29 июл 14, 18:56    [16372908]     Ответить | Цитировать Сообщить модератору
 Re: sp_dropalias исчезла в Microsoft SQL Server 2012 (SP1)  [new]
cvasil
Member

Откуда:
Сообщений: 519
В sys.database_principals их нет, но фактически привелегии в базе есть.
29 июл 14, 19:00    [16372924]     Ответить | Цитировать Сообщить модератору
 Re: sp_dropalias исчезла в Microsoft SQL Server 2012 (SP1)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37068
cvasil
В sys.database_principals их нет, но фактически привелегии в базе есть.
Если все так -- привилегии реально есть и получены они через алиасы, а не еще как-нибудь -- то остается следующее:

1. Сделать нормальное репро.
2. Зафайлить на connect.microsoft.com

Но, вообще, странно. Сущность как таковую оставили, а инструменты по управлению ею убрали.

В качестве воркэраунда на ум приходят только безумные варианты, типа "пересоздать базу", пошаманить с логинами, попробовать сделать процедуру sp_dropalias (в ней недокументированный синтаксис, который раньше сервер понимал только в контексте базы mssqlsystemresources, который, в свою очередь, можно было установить только если запустить сервер в single user mode).

Сообщение было отредактировано: 29 июл 14, 19:17
29 июл 14, 19:16    [16372978]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить