2015-10-27 69 views
0

我試圖創建一個只能在mydb_schema中使用「SELECT」的帳戶。從公共架構撤銷特權「創建表」但不是自定義架構

我能夠撤銷在特定角色的數據庫(mydb)公共架構中創建表,但我無法撤銷在架構內創建表(mydb_schema)角色(user_role)是分配給。

有人可以協助嗎?我錯過了什麼?

以下是我用作用戶postgres和模式所有者的命令。最後,我還通過使用noinherit改變了postgres帳戶,只是一個絕望的測試。沒有結果。

\c mydb 
mydb=# create role user_account 
mydb=# alter role user_account login noinherit; 
mydb=# alter role user_account set search_path = 'mydb_schema'; 
##Up until this point I don't have SELECT pivileges but I can create a table within mydb_schema only and not in public. 
mydb=# grant select on all tables in schema mydb_schema to user_account; 
mydb=# revoke CREATE on SCHEMA public from public; 

這是我的數據庫:

List of databases 
Name | Owner | Encoding | Collate | Ctype | Access privileges | Size | Tablespace |    Description 
-------------------------------------------------------------------------- 
postgres | postgres | UTF8  | en_US.UTF-8 | en_US.UTF-8 |      | 6820 kB | pg_default | default administrative connection database 
mydb  | seeker | UTF8  | en_US.UTF-8 | en_US.UTF-8 | =Tc/seeker   +| 3465 MB | pg_default | 
                   seeker=CTc/seeker 

這是我的模式:

      List of schemas 
    Name  | Owner | Access privileges |  Description 
----------------+----------+----------------------+------------------------ 
public   | postgres | postgres=UC/postgres | standard public schema 
mydb_schema | seeker | seeker=UC/seeker +| 
       |   | =UC/seeker   | 

回答