• PostgreSQL用户访问多个schema及其他常用命令


    PostgreSQL可以通过给用户授权并设置用户的 Search_path:访问的schema列表顺序
    --## 设置访问路径(默认当前用户及public)
    alter user tkk123 set search_path="$user", public;
    
    --创建用户,需要密码
    postgres=# create user tkk123 with password 'tkk123';
    
    --## 授予指定架构下所有数据表及序列的权限
    grant all privileges on all tables in schema public to tkk123;
    grant all privileges on all sequences in schema public to tkk123;
    
    
    --## 注意:上面的授权可能只对历史的一些对象授权,后期增加的对象是没有权限的,需要给个默认权限
    
    --## 赋予默认数据表的权限
    alter default privileges in schema public grant all privileges on tables to tkk123;
    
    --## 赋予默认序列的权限
    alter default privileges in schema public grant all privileges on sequences to tkk123;
    
    
    --## 单独给用户,赋予访问数据库权限,schema权限
    grant connect on database "testdb" to tkk123;
    grant usage on schema tkk123 to tkk123;
    alter schema tkk123 owner to tkk123;
    
    --## 授予管理员权限
    alter user tkk123 with superuser ;
    alter user name rename to new_name
    
    
    附注1:
    SQL Server默认访问当前shema 及 权限范围的owner为dbo的对象(设置为sysdba权限后,默认访问dbo)
    Oracle 用户和schema使用同一概念,MySQL数据库和Schema是同一概念,所以都不存在此问题。
    
    
    附注2:
    --## psql常用命令
    psql -U username -d dbName
    \l    列出所有数据库
    \du   列出所有用户
    \db   列出所有表空间
    \dn   列出连接数据库中所有schema
    \dt   列出连接数据库中所有表
    \di   列出连接数据库中所有index
    \dv   列出连接数据库中所有view
    \h    sql命令帮助
    \?    \ 所有命令帮助
    \q    退出连接
    \d tablename  列出指定tablename的表结构
    \c dbName     切换数据库
    
    
    附注3:
    select version(), txid_current(), pg_backend_pid(), current_user, current_schema, current_timestamp;
    select * from pg_catalog.pg_stat_activity psa ;
    
    select * from pg_catalog.pg_database pd ;
    select * from pg_catalog.pg_tablespace pt ;
    select * from pg_catalog.pg_user pu ;
    select * from pg_catalog.pg_namespace pn  ;  --# schema 
    select * from pg_catalog.pg_class pc where pc.relkind in ('r');
    select * from pg_catalog.pg_tables pt ;
    select * from pg_catalog.pg_views pv ;
    select * from pg_catalog.pg_sequences ps ;
    select * from pg_catalog.pg_constraint pc ;
    select * from pg_catalog.pg_indexes pi ;
  • 相关阅读:
    Git——pull拉取远程指定分支以及push到远程指定分支
    Git——拉取远程主分支到本地新建分支,并关联到对应的远程新分支
    Git——基础学习
    Flutter——侧边二级菜单栏
    Flutter——static, final, const 区别
    Git一些常用的指令
    Flutter——切换页面,如何保持当前页的状态
    Flutter—找不到图片&不显示本地图片
    Android Studio快捷方式
    某iOS APP反抓包分析
  • 原文地址:https://www.cnblogs.com/zhaoguan_wang/p/15933324.html
Copyright © 2020-2023  润新知