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

Откуда:
Сообщений: 356
Здравствуйте, БД: MS-SQL 2005
Оболочка: Лексема 5.5
ситуация: документ пользователи, связанная с таблицами users и вьюшкой VLexsysusers, которая имеет код:
select * from 
                sysusers u left JOIN 
                master.dbo.syslogins l  ON u.sid = l.sid
                           LEFT JOIN Users us 
                           ON us.userid = u.uid

(поля не стал перечислять)
и мне надо удалить одного пользователя.
Что делаю: захожу в манагер, там нахожу этого пользователя и его удаляю, потом делаю ему
delete from user users where id=:id(его ИД)

но вот он всё равно остаётся в таблице sysusers, и не разрешает удаление оттуда
Пишет: Ad hoc updates to system catalogs are not allowed.
Что делать?
25 авг 14, 08:10    [16486609]     Ответить | Цитировать Сообщить модератору
 Re: чистка учётных данных  [new]
R-Magistr
Member

Откуда:
Сообщений: 356
R-Magistr,

Т.е. вопрос: как удалить пользователя из таблицы: sysusers ?
25 авг 14, 08:11    [16486612]     Ответить | Цитировать Сообщить модератору
 Re: чистка учётных данных  [new]
aleks2
Guest
Нинада удалять ничего из sysusers.

Удаляйте пользователя штатными средствами. Через SSMS, например.
25 авг 14, 08:46    [16486662]     Ответить | Цитировать Сообщить модератору
 Re: чистка учётных данных  [new]
R-Magistr
Member

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

Т.е. это не рекомендуется или это не возможно? (удаление из sysusers)...?
если это возможно, но не рекомендуется, то как это можно реализовать?
25 авг 14, 08:50    [16486670]     Ответить | Цитировать Сообщить модератору
 Re: чистка учётных данных  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31783
R-Magistr
Т.е. это не рекомендуется или это не возможно? (удаление из sysusers)...?
если это возможно, но не рекомендуется, то как это можно реализовать?
СТандартная команда удаления пользователя: DROP USER user_name
25 авг 14, 09:05    [16486699]     Ответить | Цитировать Сообщить модератору
 Re: чистка учётных данных  [new]
R-Magistr
Member

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

Делал ему Drop user user_name вот что выдал

The database principal owns a schema in the database, and cannot be dropped
25 авг 14, 09:18    [16486729]     Ответить | Цитировать Сообщить модератору
 Re: чистка учётных данных  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
R-Magistr,

Вы точно уверены, что есть необходимость в удалении пользователя БД. Ибо может где используется оный в хранении в табличках. Да явно эта учётка владеет обьетами БД.

Цель -то какая ?
25 авг 14, 09:36    [16486787]     Ответить | Цитировать Сообщить модератору
 Re: чистка учётных данных  [new]
Glory
Member

Откуда:
Сообщений: 104751
R-Magistr
Делал ему Drop user user_name вот что выдал

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

И что непонятного ?
Как вы себе представляете удаление пользователя, который является владельцем объектов ?
25 авг 14, 10:49    [16487141]     Ответить | Цитировать Сообщить модератору
 Re: чистка учётных данных  [new]
SERG1257
Member

Откуда:
Сообщений: 2825
Удалите схему.
DROP SCHEMA schema_name

Если будет ругатся что в схеме есть объекты передайте схему другому пользователю (например dbo)
25 авг 14, 18:21    [16489995]     Ответить | Цитировать Сообщить модератору
 Re: чистка учётных данных  [new]
R-Magistr
Member

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

как всё это сделать? как посмотреть какими объектами владеет пользователь?
и как передать их от одного к другому?
28 авг 14, 07:12    [16504558]     Ответить | Цитировать Сообщить модератору
 Re: чистка учётных данных  [new]
o-o
Guest
R-Magistr,

в sys.objects в колонке principal_id :

ID of the individual owner, if different from the schema owner. By default, schema-contained objects are owned by the schema owner. However, an alternate owner can be specified by using the ALTER AUTHORIZATION statement to change ownership.

поэтому начните со схем:
select * 
from sys.schemas
where user_name(principal_id) = 'ro'

но можно и отдельные объекты проверить:
select *
from sys.objects
where user_name(principal_id) = 'your_user'

сменить овнера схеме(да и объекту тоже) -- сверху в цитате написано как.
28 авг 14, 11:16    [16505595]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить