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

Откуда:
Сообщений: 68
Добрый день

sp_helpuser
dbo db_owner sa master 1 0x01
MyDelet db_owner NULL NULL 6 0x010500000000000515000000685829B0E2259CD7E0ED9A58DAF10000

LoginName напрочь отсутствует, соответственно

EXEC sp_revokedbaccess N'MyDelet'

Server: Msg 15008, Level 16, State 1, Procedure sp_revokedbaccess, Line 36
User MyDelet' does not exist in the current database.

Как удалить левого пользователя из базы 2000?
17 янв 13, 09:22    [13782419]     Ответить | Цитировать Сообщить модератору
 Re: удалить левого пользователя из базы 2000?  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3422
sp_dropuser
кажется, так называлось
17 янв 13, 09:23    [13782429]     Ответить | Цитировать Сообщить модератору
 Re: удалить левого пользователя из базы 2000?  [new]
user23
Member

Откуда:
Сообщений: 68
левый он, не находит
UsServer: Msg 15008, Level 16, State 1, Procedure sp_dropuser, Line 12
User N'MyDelet' does not exist in the current database.
17 янв 13, 09:30    [13782462]     Ответить | Цитировать Сообщить модератору
 Re: удалить левого пользователя из базы 2000?  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
sp_change_users_login
17 янв 13, 09:38    [13782489]     Ответить | Цитировать Сообщить модератору
 Re: удалить левого пользователя из базы 2000?  [new]
user23
Member

Откуда:
Сообщений: 68
invm,

левый пользовать с NT-идентификацией, и sp_change_users_login видимо не подойдет
17 янв 13, 11:01    [13783139]     Ответить | Цитировать Сообщить модератору
 Re: удалить левого пользователя из базы 2000?  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
С NT-идентификацией может быть логин, а не пользователь.
17 янв 13, 11:07    [13783186]     Ответить | Цитировать Сообщить модератору
 Re: удалить левого пользователя из базы 2000?  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
> User N'MyDelet' does not exist in the current database.

гм. а имя вот прямо так и написано в ошибке? с N и кавычками?
17 янв 13, 11:14    [13783254]     Ответить | Цитировать Сообщить модератору
 Re: удалить левого пользователя из базы 2000?  [new]
Гость333
Member

Откуда:
Сообщений: 3683
daw
> User N'MyDelet' does not exist in the current database.

гм. а имя вот прямо так и написано в ошибке? с N и кавычками?

Это он так криво шифруется, заменяя реальное имя на вымышленное. В первом сообщении вообще юзер с одним апострофом:
автор
User MyDelet' does not exist in the current database
17 янв 13, 11:20    [13783309]     Ответить | Цитировать Сообщить модератору
 Re: удалить левого пользователя из базы 2000?  [new]
user23
Member

Откуда:
Сообщений: 68
daw,
действительно N зря затесалась

EXEC sp_dropuser 'DD\MyDelet'

Server: Msg 15008, Level 16, State 1, Procedure sp_dropuser, Line 12
User 'DD\MyDelet' does not exist in the current database.
17 янв 13, 11:21    [13783319]     Ответить | Цитировать Сообщить модератору
 Re: удалить левого пользователя из базы 2000?  [new]
Glory
Member

Откуда:
Сообщений: 104751
А почему 'DD\MyDelet', если sp_helpuser показал MyDelet ?
17 янв 13, 11:25    [13783368]     Ответить | Цитировать Сообщить модератору
 Re: удалить левого пользователя из базы 2000?  [new]
user23
Member

Откуда:
Сообщений: 68
Glory,

после предложения использовать sp_change_users_login
пришлось использовать вместо MyDelet обозначение DD\MyDelet
17 янв 13, 11:28    [13783404]     Ответить | Цитировать Сообщить модератору
 Re: удалить левого пользователя из базы 2000?  [new]
Glory
Member

Откуда:
Сообщений: 104751
user23
после предложения использовать sp_change_users_login

sp_change_users_login только для SQL login-ов
17 янв 13, 11:29    [13783408]     Ответить | Цитировать Сообщить модератору
 Re: удалить левого пользователя из базы 2000?  [new]
Glory
Member

Откуда:
Сообщений: 104751
user23
пришлось использовать вместо MyDelet обозначение DD\MyDelet

нельзя просто в EM взять и удалить ?
17 янв 13, 11:30    [13783414]     Ответить | Цитировать Сообщить модератору
 Re: удалить левого пользователя из базы 2000?  [new]
user23
Member

Откуда:
Сообщений: 68
Glory,

да в ЕМ можно легко можно удалить, но
эта база с другого сервера периодически разворачивается и левый пользователь мешает,
поэтому интересует код
17 янв 13, 11:34    [13783443]     Ответить | Цитировать Сообщить модератору
 Re: удалить левого пользователя из базы 2000?  [new]
Glory
Member

Откуда:
Сообщений: 104751
user23
да в ЕМ можно легко можно удалить, но
эта база с другого сервера периодически разворачивается и левый пользователь мешает,
поэтому интересует код

Ну так если не можете сами написать правильно имя пользователя, то возьмите Профайлер и посмотрите, как это делает ЕМ.
17 янв 13, 11:35    [13783452]     Ответить | Цитировать Сообщить модератору
 Re: удалить левого пользователя из базы 2000?  [new]
icprog
Member

Откуда:
Сообщений: 166
user23,

Удаление через ЕМ, а в окне удаления нажать Script
17 янв 13, 11:39    [13783479]     Ответить | Цитировать Сообщить модератору
 Re: удалить левого пользователя из базы 2000?  [new]
user23
Member

Откуда:
Сообщений: 68
icprog,

в 2000 такого сервиса нет
17 янв 13, 11:42    [13783504]     Ответить | Цитировать Сообщить модератору
 Re: удалить левого пользователя из базы 2000?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31983
user23
icprog,

в 2000 такого сервиса нет
По моему был (нету сейчас под ругой EM, не могу проверить)
17 янв 13, 11:46    [13783541]     Ответить | Цитировать Сообщить модератору
 Re: удалить левого пользователя из базы 2000?  [new]
icprog
Member

Откуда:
Сообщений: 166
user23,

Да, действительно, в 2000 можно заскриптовать объекты БД, но не пользователей...
17 янв 13, 12:06    [13783779]     Ответить | Цитировать Сообщить модератору
 Re: удалить левого пользователя из базы 2000?  [new]
Гость333
Member

Откуда:
Сообщений: 3683
alexeyvg
user23
icprog,

в 2000 такого сервиса нет
По моему был (нету сейчас под ругой EM, не могу проверить)

У меня под рукой, нет здесь такого.

Если у ТС есть SQL Server Management Studio, то можно с её помощью подключиться к SQL2000 и сгенерить скрипт.

По сабжу — ошибка 15008 рейзится в следующем случае:
    -- CHECK IF SYSUSER EXISTS --
    select @uid = uid from sysusers where name = @name_in_db
            and (issqluser = 1 or isntname = 1)         -- is droppable entity
            and (name <> 'guest' or hasdbaccess = 1)    -- special case guest
    if @uid is null
    begin
        raiserror(15008,-1,-1,@name_in_db)
        return (1)
    end

То есть логины тут вообще ни при чём. Надо правильно писать имя юзера.
17 янв 13, 12:08    [13783801]     Ответить | Цитировать Сообщить модератору
 Re: удалить левого пользователя из базы 2000?  [new]
icprog
Member

Откуда:
Сообщений: 166
Если EXEC sp_helpuser возвращает MyDelet, то и писать надо
EXEC sp_dropuser 'MyDelet'
17 янв 13, 12:28    [13783995]     Ответить | Цитировать Сообщить модератору
 Re: удалить левого пользователя из базы 2000?  [new]
user23
Member

Откуда:
Сообщений: 68
Спасибо всем за участие.
За именами действительно надо четче следить, видимо тут я оказался не силен.
Профайлер выдает кучу кода, хотя и ссылается на sp_revokedbaccess
Скрипт SQL Server Management Studio, выдает незамысловатый код
IF  EXISTS (SELECT * FROM dbo.sysusers WHERE name = N'DD\MyDelet')
EXEC dbo.sp_revokedbaccess N'DD\MyDelet'
который успешно работает

Благодарю за терпение
17 янв 13, 12:37    [13784088]     Ответить | Цитировать Сообщить модератору
 Re: удалить левого пользователя из базы 2000?  [new]
amaystrenko
Member

Откуда:
Сообщений: 4
коллеги, если пользователя нет нигде в системе(сервере), то почем бы вам просто не удалить данные из системных таблиц и не мучится?
17 янв 13, 12:48    [13784202]     Ответить | Цитировать Сообщить модератору
 Re: удалить левого пользователя из базы 2000?  [new]
Glory
Member

Откуда:
Сообщений: 104751
amaystrenko
коллеги, если пользователя нет нигде в системе(сервере), то почем бы вам просто не удалить данные из системных таблиц и не мучится?

потому что и так все удаляется. Если правильное имя пользователя задавать.
17 янв 13, 12:50    [13784218]     Ответить | Цитировать Сообщить модератору
 Re: удалить левого пользователя из базы 2000?  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
amaystrenko
коллеги, если пользователя нет нигде в системе(сервере), то почем бы вам просто не удалить данные из системных таблиц и не мучится?
13782271. Ссылка и последнее предложение.
17 янв 13, 12:52    [13784247]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить