2014-02-05 4 views
1

Мне нужно создать учетную запись пользователя READ-ONLY в группе redshift db. После создания учетной записи пользователя этот пользователь не сможет создать какой-либо объект в PUBLIC.but, он может выбрать любой объект. поскольку CREATE & Привилегии USAGE предоставляются всем пользователям по умолчанию, pls подсказывают мне, как ограничить создание объектов в PUBILE SCHEMA?Как создать пользователя READ ONLY в redshift

версия:

PostgreSQL 8.0.2 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3), Redshift 1.0.735 

СПАСИБО

привет,

Я отметил свой ответ. Да, это работает. Но у меня есть разъяснение.

Если вы сделали ниже и создаете любого пользователя далее в базе данных (уже существующий пользователь), тогда они не смогут создавать объекты в схеме PUBLIC.

postgres=# REVOKE CREATE ON SCHEMA public FROM PUBLIC; 
REVOKE 

так, если я сбросить обратно (т.е. ниже), то она applicables всем пользователям и все пользователи имеют возможность создавать объекты в БД.

postgres=# grant create on schema public to public; 
GRANT 

мое намерение, мне нужно ограничить создание объекта (CREATE priv) для определенных пользователей. не для всех пользователей db. Напр. Мне нужно создать 2 пользователя. первый - ЧИТАЙТЕ. Второй - READ-WRITE. я должен иметь возможность отменить CREATE priv только от этого. НЕ ОТ ВСЕХ.

Можете ли вы направить меня, если я ошибаюсь.

спасибо снова

ответ

1

По умолчанию, каждый пользователь может получить доступ и создавать таблицы на «публичной» схему, поскольку «PUBLIC» (все пользователи) имеет все привилегии на «публичной» схеме. Вы можете отменить привилегию CREATE на «PUBLIC» у пользователей со следующей командой.

REVOKE CREATE ON SCHEMA public FROM PUBLIC; 
  • "общественность": имя схемы
  • "PUBLIC": Идентификатор "всех пользователей"

После выполнения указанной выше команды, необходимо выполнить команду GRANT, которая позволяет пользователям доступ к схеме «PUBLIC».

GRANT CREATE ON SCHEMA public TO {user-name}; 

Этот документ объясняет это.

+1

Привет Масасьте, Спасибо за предыдущую почту. да, я могу отменить CREATE ON public schema от PUBLIC (все пользователи). Но мне нужно специально REVOKE из одной учетной записи пользователя, а не из всех пользователей (PUBLIC). Пожалуйста, помогите мне в этом. – user3258784

Смежные вопросы