postgresql只有owner或usersuper許可權才能修改表結構或drop表
官方文件的一段說明
For most kinds of objects, the initial state is that only the owner (or a superuser) can do anything with the object.
The right to modify or destroy an object is always the privilege of the owner only.
對於大多數型別的物件,初始狀態是隻有所有者(或超級使用者)可以對物件執行任何操作。
修改或銷燬物件的權利始終只是所有者的特權。
表s1.u1_table的owner是u1,使用者postgres是超級管理員,使用者u2擁有表s1.u1_table的所有許可權和schema s1的所有許可權,使用者u2都無法修改該表的表結構或drop該表,只有超級管理員或s1.u1_table的owner才能修改該表的表結構或drop該表
t1=> \c
You are now connected to database "t1" as user "u1".
t1=> create table s1.u1_table(hid int);
CREATE TABLE
t1=> \c - postgres
You are now connected to database "t1" as user "postgres".
t1=# select usename,usesuper from pg_user where usename='postgres';
usename | usesuper
----------+----------
postgres | t
t1=# select * from pg_tables where tablename='u1_table';
schemaname | tablename | tableowner | tablespace | hasindexes | hasrules | hastriggers | rowsecurity
------------+-----------+------------+------------+------------+----------+-------------+-------------
s1 | u1_table | u1 | | f | f | f | f
t1=# create user u2 password '123456';
CREATE ROLE
t1=# grant all privileges on schema s1 to u2;
GRANT
t1=# grant all privileges on table s1.u1_table to u2;
GRANT
t1=# \c - u2;
You are now connected to database "t1" as user "u2".
t1=> alter table s1.u1_table add hid2 int;
ERROR: must be owner of table u1_table
t1=> drop table s1.u1_table;
ERROR: must be owner of table u1_table
t1=> \c - postgres
You are now connected to database "t1" as user "postgres".
t1=# alter table s1.u1_table add hid2 int;
ALTER TABLE
t1=# drop table s1.u1_table;
DROP TABLE
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30126024/viewspace-2682540/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【LIUNX】目錄或檔案許可權,許可權授予
- SQL Server中Truncate許可權必須擁有db_owner 或db_ddladminSQLServer
- 修改組策略以安裝MSI程式進行許可權升級或許可權維持
- Linux系統下如何修改檔案或目錄的許可權?Linux
- MySQL許可權表介紹MySql
- PostgreSQL:許可權管理SQL
- postgresql關於許可權的總結SQL
- RMAN恢復單個表空間或被DROP/DELETE/TRUNCATE的表delete
- Oracle建立使用者並給使用者授權查詢指定表或檢視的許可權Oracle
- Win10系統修改或刪除檔案提示“你需要許可權能才能執行此操作”如何解決Win10
- 許可權修改命令
- 檢視Oracle使用者的許可權或角色Oracle
- 選單許可權表sqlite和mysqlSQLiteMySql
- 【linux】給目錄或檔案加i、a許可權Linux
- sql2008 更改表結構,不允許修改SQL
- Oracle檢視使用者預設表空間、臨時表空間、系統許可權、物件許可權、角色許可權舉例說明Oracle物件
- 管理員能否revoke表擁有者delete表的許可權delete
- 需要一個前臺許可權管理,或問如何實現
- 系統目錄或檔案屬組屬主(許可權)
- Linux使用:檔案或目錄的許可權設定Linux
- 【自然框架】之通用許可權(八):許可權到欄位(列表、表單、查詢)框架
- 通過修改資料字典,變更表的owner
- 修改檔案的許可權
- 資料庫建模或表結構(模型設計)_隨記(二)資料庫模型
- 呼叫者許可權過程對OWNER物件的依賴物件
- 如果我要在許可權系統中加入域的概念該如何設計表結構?
- 怎麼控制報表的資料許可權
- SQLServer控制使用者訪問許可權表SQLServer訪問許可權
- 表空間配額和UNLIMITED TABLESPACE許可權MIT
- MySQL使用GRANT授權某使用者瀏覽和修改表許可權操作一例MySql
- Ubuntu下給普通或新增使用者賦予sudo許可權Ubuntu
- 改變檔案或目錄的訪問許可權命令(轉)訪問許可權
- MySQL修改表結構到底會不會鎖表?MySql
- Guest許可權突破——許可權提升方法總結(轉)
- 淺談PostgreSQL使用者許可權SQL
- 修改表結構遷移資料表來縮小表大小
- PostgreSQL物件許可權如何在後設資料中獲取-許可權解讀、定製化匯出許可權SQL物件
- postgresql分割槽表修改資料表欄位SQL