postgres 的使用

时间:2024-10-15 07:07:43

postgres的常用命令:

      查看所有库: \l

      进入库 :\c

      查看所有表:\d 库名;

      查看表结构:\d 表名;

      查看所有用户:\du

      显示当前库下schema信息: \dn

postgres的防火墙配置:

         在安装目录的/var/lib/pgsql/data/pg_hba.conf  文件中

创建用户:

在postgres中创建、修改用户使用role,删除用户使用user

-- 创建角色 test1  带超级权限 登录权限 配置密码为 dyh666
create role test1  with SUPERUSER LOGIN password 'dyh666';

-- 普通用户
create role test2  with  LOGIN password 'dyh666';

-- 创建复制用户
create role test3  with REPLICATION  LOGIN password 'dyh666';

-- 修改用户
alter role test1 with NOSUPERUSER login password 'dyh666';

-- 删除用户
drop user test1;

--修改将属主为 test 的表分配给 test2
reassign owned by test1 to test2;

-- 删除属于 test1 的表 
-- 需要手动删除数据库或表空间
drop owned by test1;

权限管理:

授权test1用户对test库拥有create权限
grant create on database test to test1;

    schema 权限

        -- 创建schema 默认为当前用户
        create schema  test_schema;

        -- 创建schema test2 授权给 test1 用户
        create schema test2 authorization test1;

        -- 进入schema
        set search_path to  test_schema;

        -- 查看一个database下有几个schema
        select * from information_schema.schemata;

        -- 将test_schema的拥有者设置为test用户
        alter schema test_schema  owner to test;

        -- 进入test 库
        \c test

        -- 授权 test 用户 test_chema 下的所有表,增删改查权限
        grant select,insert,update,delete on all tables in schema test_schema  to test;

        -- 删除模式
        drop schema test1;

        -- 删除模式及其包含的对象
        drop schema test2 cascade;

    角色权限:

        -- 创建角色
        create role select_group;

        -- 授权 t1 表查询权限 给角色 select_group
        grant select on t1 to select_group;

        -- 授权 select_group 组给 user_test 用户
        grant select_group to user_test;

在库里面执行:  set search_path to  test_app_schema;   切换到指定schema下面;

postgres的数据类型:

     1、数值:    
名字 存储长度 描述 范围
smallint 2 字节 小范围整数 -32768 到 +32767
integer 4 字节 常用的整数 -2147483648 到 +2147483647
bigint 8 字节 大范围整数 -9223372036854775808 到 +9223372036854775807
decimal 可变长 用户指定的精度,精确 小数点前 131072 位;小数点后 16383 位
numeric 可变长 用户指定的精度,精确 小数点前 131072 位;小数点后 16383 位
real 4 字节

可变精度(整数或小数),

不精确

6 位十进制数字精度
double precision 8 字节 可变精度,不精确 15 位十进制数字精度
smallserial 2 字节 自增的小范围整数 1 到 32767
serial 4 字节 自增整数 1 到 2147483647
bigserial 8 字节 自增的大范围整数 1 到 9223372036854775807
    2、货币类型:money

          money类型存储带有固定小数精度的货币金额。
          numeric、int 和 bigint 类型的值可以转换为 money,不建议使用浮点数来处理处理货币类型,因为存在舍入错误的可能性。

名字 存储容量 描述 范围
money 8 字节 货币金额 -92233720368547758.08 到 +92233720368547758.07
    3、字符类型:
名字 描述
varchar(n) 或 character varying(n) 变长,有长度限制,最大为 10485760(1G)
char(n)或 character(n) 定长,不足补空白,最大为 10485760(1G)
text 变长,无长度限制
     4、日期时间类型: