Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Владелец объекта в ASE
|
|||
|---|---|---|---|
|
#18+
Разработчики нам дают базы, где владельцами являются логины, заведенные на их серверах, у нас их нет. При поднятии дампа на другом сервере, где нет логина владельца объекта, выдается сообщение типа: Object 'CheckUNNClass' in database 'CLEARING' is owned by login 'ADMIN' who does not exist in this server. В таблице sysobjects на таких объектах в колонке loginame прописаны отсутствующие логины, на остальных объектах - NULL Что-то я не нашел, штатных средств смены владельца объекта. В Central'е есть только Creator. Подскажите, как сменить владельца? И где еще, кроме как в указанной ситуации с дампом отсутствие логина владельца может доставить неудобства? ------------------ ASE 12.0 EBF11541 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2005, 10:40 |
|
||
|
Владелец объекта в ASE
|
|||
|---|---|---|---|
|
#18+
Из документации: // Системные администраторы могут использовать команду setuser для создания объектов, владельцами которых будет другой пользователь. Однако системные администраторы работают вне системы DAC- полномочий, поэтому им не нужно выполнять команду setuser для получения полномочий других пользователей. Команда setuser действует до выполнения другой команды setuser, до смены текущей базы данных или до выхода пользователя из системы. Синтаксис команды: setuser ["имя_пользователя"] где имя_пользователя – это допустимый пользователь в базе данных, за которого необходимо себя выдать. Чтобы восстановить свои исходные идентификационные сведения, используйте команду setuser без параметра имя_пользователя. В следующем примере показано, как владелец базы данных может предоставить пользователю Joe полномочие на чтение таблицы authors, владельцем которой является пользователь Mary: setuser "mary" grant select on authors to joe setuser /*восстанавливает исходные идентификационные сведения*/ // Сменить владельца можно путем пересоздания объекта. SA входит под владельцем, выгружает объект, затем создает под SA. Разработчики, ИМХО, уроды. Создавать объекты при разработке должен DBA, который в базе dbo. Исключение - при обслуживании одной фирмой нескольких независимых предприятий, данные которых находятся в одной базе или др. совсем экзотические вещи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2005, 15:24 |
|
||
|
Владелец объекта в ASE
|
|||
|---|---|---|---|
|
#18+
Так что, мне все объекты пересоздавать вручную? :(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2005, 16:01 |
|
||
|
Владелец объекта в ASE
|
|||
|---|---|---|---|
|
#18+
а может у кого-то есть опыт изменения в sysobjects uid ? :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2005, 18:20 |
|
||
|
Владелец объекта в ASE
|
|||
|---|---|---|---|
|
#18+
Дело в том, что uid означает пользователя в базе, т.е. при поднятиии базы из дампа пользователь создасться со всеми остальными данными. За связь с логинами отвечает только текстовое поле loginame - его значение можно совершенно спокойно поменять простым update, (allow updates to system tables должен быть 1). Безопаснее всего сбросить его в NULL. Vlad_5181Создавать объекты при разработке должен DBA, который в базе dbo Скорее всего они так и делают, только заходят не под sa, а под другой учеткой - которая имеет алиас dbo на требуемую базу, при этом в loginame пишется имя логина, а uid и будет uid dbo. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2005, 11:09 |
|
||
|
Владелец объекта в ASE
|
|||
|---|---|---|---|
|
#18+
_Sania За связь с логинами отвечает только текстовое поле loginame ой ли? а рази suid с master.syslogins не увязан? типа такого Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2005, 11:19 |
|
||
|
Владелец объекта в ASE
|
|||
|---|---|---|---|
|
#18+
Трава у дома ой ли? а рази suid с master.syslogins не увязан? Я такого и не писал: _Saniauid означает пользователя в базе Или не знаешь в чем разница между suid и uid? uid с master..syslogins не связан, он связан с sysusers в базе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2005, 13:13 |
|
||
|
Владелец объекта в ASE
|
|||
|---|---|---|---|
|
#18+
to Алексей Кривеня Что бы можно было отвечать более предметно, лучше привести результат запроса select name,uid,loginame from sysobjects where name = 'имя_проблемного_объекта' тогда будет яснее, я думаю uid будет равен 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2005, 13:28 |
|
||
|
Владелец объекта в ASE
|
|||
|---|---|---|---|
|
#18+
Наилучшим решением будет внесение в master..syslogins учетки с именем 'ADMIN' и suid взятым из запроса select suid,uid,gid,name from sysusers where uid = 1 Тогда и при последующих поднятиях дампов никакой ругани не будет. Или как вариант можно в sysusers поменять suid (это нужно если создатель базы имеет suid, которого нет в master..syslogins, в этом случае sp_changedbowner скорее всего не отработает) update sysusers set suid = 1 where uid = 1 Тогда владельцем базы будет sa. После всей этой химии сервак лучше перегрузить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2005, 14:09 |
|
||
|
Владелец объекта в ASE
|
|||
|---|---|---|---|
|
#18+
Забыл добавить, надо еще проверить, что в sysalternats и на всякий случай master..sysdatabases. Вобще надо посмотреть что у тебя в sp_changedbowner, она наверно зависит от версии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2005, 14:14 |
|
||
|
Владелец объекта в ASE
|
|||
|---|---|---|---|
|
#18+
Описался - sysalternates. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2005, 14:16 |
|
||
|
Владелец объекта в ASE
|
|||
|---|---|---|---|
|
#18+
_SaniaЗа связь с логинами отвечает только текстовое поле loginame _Sania За связь с логинами отвечает только текстовое поле loginame вот мы и убедились, что это не так и что играть c sysobjects uid все равно придется :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2005, 15:11 |
|
||
|
Владелец объекта в ASE
|
|||
|---|---|---|---|
|
#18+
авторuid с master..syslogins не связан, он связан с sysusers в базе. но uid связан с suid в sysusers базы, а тот уже с suid из master..syslogins. Что и видно из приведенного мной запроса. Это элементарно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2005, 15:14 |
|
||
|
Владелец объекта в ASE
|
|||
|---|---|---|---|
|
#18+
Чем связан? suid в sysuser определяет прямые связи между suslogins и sysusers - их может быть много, а может быть только одна, и все будут ходить через алиасы (sysalternates) и тогда suid будет связан с altsuid - что не понятно? Все это поднимается вместе с дампом - проблемы могут быть только в связи sususer и syslogins. Проблема явно только с одним пользователем ADMIN, скорее всего он dbo, все что нужно согласовать syslogins и sysusers по suid, НИГДЕ НЕНУЖНО править uid. dbo меняется элементарно, есть даже процедура, которая это делает (sp_changedbowner) но в случае если это логина нет на сервере она не отработает - поэтому и надо лезть в системные таблицы. Права на объекты вешаются на uid (или на роли), соответственно логинов в базе, которые ходят с определенны uid будет столько, сколько определено в susalternates. Дался тебе это uid, он наверняка 1. Менять его нужно только если ты хочешь удалить ПОЛЬЗОВАТЕЛЯ В БАЗЕ (sysusers), связь с логинами осуществляется опосредованно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2005, 16:15 |
|
||
|
Владелец объекта в ASE
|
|||
|---|---|---|---|
|
#18+
_Saniato Алексей Кривеня Что бы можно было отвечать более предметно, лучше привести результат запроса select name,uid,loginame from sysobjects where name = 'имя_проблемного_объекта' тогда будет яснее, я думаю uid будет равен 1. Он и есть 1: select name,uid,loginame from sysobjects where name = 'CheckUNNClass' name uid loginame [char ] [smallint] [char ] CheckUNNClass 1 ADMIN Но заводить ADMIN я не хочу. На... мне лишний логин. Мне кажется проще сделать: update sysusers set loginname = NULL Только вот не зацепить чего-нибудь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2005, 16:34 |
|
||
|
Владелец объекта в ASE
|
|||
|---|---|---|---|
|
#18+
Алексей Кривеня update sysusers set loginname = NULL Ошибочка: update sysobjects set loginname = NULL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2005, 16:38 |
|
||
|
Владелец объекта в ASE
|
|||
|---|---|---|---|
|
#18+
to Алексей Кривеня Конечно sysobjects. Можно и не заводить, только тогда выбери логин, который будет dbo, посмотри, что у тебя sp_changedbowner и проделай все что там описано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2005, 00:17 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=32948291&tid=2013798]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
69ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
| others: | 250ms |
| total: | 438ms |

| 0 / 0 |
