1
CREATE衆所周知聲明
如果我創建Postgres的順序如下:補助產生從pgAdmin的
CREATE SEQUENCE test
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 1
CACHE 1;
GRANT ALL ON SEQUENCE test TO testuser;
GRANT SELECT ON SEQUENCE test TO testuser2;
,然後選擇pgAdmin的序列,點擊鼠標右鍵 - >創建腳本,我得到:
CREATE SEQUENCE test
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 1
CACHE 1;
ALTER TABLE test
OWNER TO testuser;
GRANT ALL ON TABLE test TO testuser;
GRANT SELECT ON TABLE test TO testuser2;
所以在GRANT語句我看到關鍵字「TABLE」,而不是「序列」
- 這是爲什麼?
- pgAdmin如何生成DDL提取?
這個問題是關係到我這裏其他的問題之一:
Query GRANTS granted to a sequence in postgres
但如何pgAdmin的創建,如 「GRANT ALL ON TABLE測試,以testuser的」 staements?好的,ACL信息在pg_class的「relacl」列中可用,但需要一些編程工作來將諸如「{postgres = arwdDxt/postgres}」之類的內容轉換爲「GRANT SELECT ...」,幾乎不可能用純SQL。是不是有一個類似information_schema.role_table_grants的表格的地方? – markus
@markus:對不起,延遲;我忽略了你的評論。我不知道pgAdmin如何爲其SQL窗格生成SQL,但是您可以[下載源代碼](http://www.pgadmin.org/download/source.php)。據我所知,沒有information_schema視圖公開序列的權限。 –