Снежинка Грант Выбрать по единой схеме - PullRequest
0 голосов
/ 30 октября 2019

db: my_db

схемы: my_schema_1, my_schema_2

таблицы:

  • my_schema_1: table_a, table_b
  • my_schema_2: table_c, table_

Я хотел бы предоставить select всем таблицам в my_schema_2.

use role securityadmin;
grant usage 
  on database my_db 
  to role dw_ro_role;

grant usage on schema my_db.my_schema_2
  to role dw_ro_role;

grant select
  on all tables in schema my_db.my_schema_2
  to role dw_ro_role;

Однако это предоставляет доступ ко ВСЕМ схемам в базе данных. (Я думаю через предоставление использования) На самом деле, если я:

grant usage on my_db...
revoke select on all tables in my_schema_2

, я все еще могу запросить все.

Если я отзову использование в базе данных my_db, я не смогу ничего запросить.

Владельцем my_db является sysadmin. Владельцем схем является etl_tool_role.

Как разрешить доступ для выбора из таблиц только в выбранной схеме?

1 Ответ

2 голосов
/ 30 октября 2019

Ваши гранты выглядят просто отлично, поэтому мне интересно, как вы получаете доступ к этому / тестируете его.
Или, возможно, role dw_ro_role имеет больше грантов, чем вы показали выше.

ЕслиВы входите в БД с пользователем, у которого есть только role dw_ro_role и та же роль, что и по умолчанию, вы должны получить доступ только к schema my_db.my_schema_2.

...