Как изменить имя пользователя в Informix? - PullRequest
0 голосов
/ 10 октября 2018

Как я могу изменить имя пользователя в Informix?

select * from sysusers; списках ниже

username  John.Doe
usertype  R
priority  5
password
defrole   admin

Я хочу обновить имя пользователя, чтобы оно было в нижнем регистре для пользователя john.doe, нокажется, мы не можем просто запустить обновление update sysusers set username = xxx как обычно.Какую команду мы должны использовать для этого?

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Кто-то запустил:

GRANT RESOURCE TO "John.Doe";

Вам нужно будет отозвать свою привилегию RESOURCE:

REVOKE RESOURCE FROM "John.Doe";

, но это оставляет John.Doe с привилегией CONNECT, которая вам также понадобитсяотменить.Если вы отозваете привилегию DBA у кого-то, он также сохранит привилегию CONNECT (а не привилегию RESOURCE).

REVOKE CONNECT FROM "John.Doe";

Затем вы можете повторно предоставить привилегию RESOURCE имени пользователя в нижнем регистре:

GRANT RESOURCE TO "john.doe";

Обратите внимание, что имя пользователя должно быть заключено в кавычки каждый раз, чтобы сохранить чувствительность к регистру, и потому что ни john.doe, ни John.Doe не является действительным идентификатором из-за . в середине.

Эти изменения влияют только на таблицу SysUsers.Любые ресурсы, созданные John.Doe, все еще принадлежат John.Doe, а не john.doe.Нет возможности изменить владельца объектов.«Обходной путь» - сбросить и воссоздать объекты с правильным владельцем.Помните, что удаление объекта приводит к потере всех разрешений, предоставленных этому объекту, а также к уничтожению представлений, созданных поверх отброшенной таблицы (или представления).

0 голосов
/ 10 октября 2018

Вы не можете.Несмотря на имя таблицы каталога, записи в этой таблице представляют привилегии уровня базы данных Informix для этого пользователя, а не для реального пользователя.Это команды SQL GRANT и REVOKE, которые управляют этими записями.

Я могу думать только о том, чтобы REVOKE все привилегии базы данных для пользователей John.Doe и GRANT имели одинаковые привилегии дляпользователь john.doe.Обратите внимание, что любой объект, принадлежащий пользователю John.Doe, будет по-прежнему принадлежать John.Doe.

...