PostgreSQL用户、数据库及表的管理、操作与授权方式
摘要
PostgreSQL的常用命令
1、登录数据库
/*切换到数据库用户*/ su-postgres /*登录*/ psql
登录成功显示如下:
bash-4.2$psql psql(9.3.17) Type"help"forhelp. postgres=>
2、切换数据库
/*登录指定数据库*/ psql-Uuser-ddbname /*列举数据库*/ \l /*切换数据库*/ \cdbname
3、用户管理
/*创建用户*/ CREATEROLErolename; CREATEUSERusernameWITHPASSWORD'*****'; /*显示所有用户*/ \du /*修改用户权限*/ ALTERROLEusernameWITHprivileges; /*赋给用户表的所有权限*/ GRANTALLONtablenameTOuser; /*赋给用户数据库的所有权限*/ GRANTALLPRIVILEGESONDATABASEdbnameTOdbuser; /*撤销用户权限*/ REVOKEprivilegesONtablenameFROMuser; /*撤销用户权限*/
4、数据库操作
/*创建数据库*/ createdatabasedbname; /*删除数据库*/ dropdatabasedbname;
5、表操作
/*增加让主键自增的权限*/ grantallonsequencetablename_keyname_seqtowebuser; /*重命名一个表*/ altertable[表名A]renameto[表名B]; /*删除一个表*/ droptable[表名]; /*在已有的表里添加字段*/ altertable[表名]addcolumn[字段名][类型]; /*删除表中的字段*/ altertable[表名]dropcolumn[字段名]; /*重命名一个字段*/ altertable[表名]renamecolumn[字段名A]to[字段名B]; /*给一个字段设置缺省值*/ altertable[表名]altercolumn[字段名]setdefault[新的默认值]; /*去除缺省值*/ altertable[表名]altercolumn[字段名]dropdefault; /*插入数据*/ insertinto表名([字段名m],[字段名n],......)values([列m的值],[列n的值],......); /*修改数据*/ update[表名]set[目标字段名]=[目标值]where...; /*删除数据*/ deletefrom[表名]where...; /*删除表*/ deletefrom[表名]; /*查询*/ SELECT*FROMdbnameWHERE...; /*创建表*/ createtable( [字段名1][类型1]primarykey, [字段名2][类型2], ......, [字段名n][字段名n])
6、退出
\q quit
补充:postgresql授权某个数据库的权限给test账号使该账号只能操作指定DB不能操作其他DB
alterusertestsetdefault_transaction_read_only=on; grantallondatabasecrm_dbtotest; grantselectonalltablesinschemapublictotest;//起作用的是这句要进入crm_db操作,在那个db环境执行就授哪个db的权
删除前撤销
revokeallondatabasecrm_prod_mylfromtest; revokeselectonalltablesinschemapublicfromtest;
以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。