postgres 创建新用户并授权

https://blog.csdn.net/XuHang666/article/details/81506297

原作者总结的挺好的 可以用来学习一下.

grant all on database hcmcloud(databasename) to hcm(username)
 

postgres 默认用户是postgres,为超级用户。

第一步:先以postgress 登录

1)psql -U '用户名'

2.)创建数据库新用户

CREATE USER 用户名 WITH PASSWORD '*****';

3)授予用户数据库权限

GRANT ALL PRIVILEGES ON DATABASE 数据库名 TO 用户名;

4)授予用户查看刚授权的数据库的里面的表的权限

GRANT ALL PRIVILEGES ON TABLE 表名  TO 用户名;

附带一条:修改的表的类型

alter table 表名 alter 字段名 type 类型;

附带一条:增加表新的字段

alter table 表名 add column 字段名 text(字段类型);

2018-08/22新增:设置主键自增

CREATE SEQUENCE user_id_seq
START WITH
INCREMENT BY
NO MINVALUE
NO MAXVALUE
CACHE ;

alter table sys_user alter COLUMN id set DEFAULT nextval('user_id_seq');

2018-11/14新增:postgres创建B-Tree索引

-- create index '索引名' on '表名' ('需要索引的字段')
CREATE INDEX ip_store_inde on ip_store (ip_network);

添加各种约束

1. 添加主键

alter table goods add primary key(sid);

2. 添加外键

alter table orders add foreign key(goods_id) references goods(sid)  on update cascade on delete cascade;

on update cascade: 被引用行更新时,引用行自动更新;

on update restrict: 被引用的行禁止更新;

on delete cascade: 被引用行删除时,引用行也一起删除;

on dellete restrict: 被引用的行禁止删除;

3. 删除外键

alter table orders drop constraint orders_goods_id_fkey;

4. 添加唯一约束

alter table goods add constraint unique_goods_sid unique(sid);

5. 删除默认值

alter table goods  alter column sid drop default;

6. 修改字段的数据类型

alter table goods alter column sid type character varying;

7. 重命名字段

alter table goods rename column sid to ssid;

建表SQL示例

CREATE TABLE nginx_server_config (
  id serial NOT NULL ,
  listen_port int4 NOT NULL,
  server_name varchar() not null,
  location varchar() null,
  is_ssl int2  null,
  ssl_session_timeout varchar null,
  ssl_cert_name varchar() null,
  ssl_cert_key_name varchar() null,
  proxy_pass_url varchar() not null,
  create_date timestamp() not null,
  update_date timestamp() null,
  remark varchar() null,
  client_max_body_size varchar null,
  constraint PK_nginx_server_config primary key (id)
);

8. 表新增列

# 不存在则创建
ALTER TABLE sys_user ADD COLUMN IF NOT EXISTS v6_level int2;

# 直接创建
ALTER TABLE sys_user ADD COLUMN v6_level int2;

9. array和jsonb类型操作

-- jsonb 类型数据类型操作
DROP TABLE IF EXISTS public.test_jsonb;
CREATE TABLE public.test_jsonb (
    id int4,
    data jsonb
);
insert into test_jsonb values(,'{"id":1,"name":"小明", "age":18}');
select  * from test_jsonb;

-- array 类型数据类型操作
DROP TABLE IF EXISTS public.test_array;
CREATE TABLE public.test_array (
    id int4,
    data varchar()[]
);

insert into test_array values(,array['fisrt','second']);
select  * from test_array;

10. 判断表是否存在

-- 语法 select count(*) from pg_class where realname = '表名';
select count(*) from pg_class where relname = 'sys_command';

[转帖]postgres 创建新用户并授权-- 非常好的的更多相关文章

  1. Mysql 5.6创建新用户并授权指定数据库相应权限

    一.环境 Centos 6.9 Mysql 5.6.40 二.步骤 1.使用root用户登陆mysql mysql -uroot -p 输入密码: 2.创建新用户 CREATE USER 'user' ...

  2. vertica创建新用户并授权

    1.创建用户,并设置密码: create user user1 identified by 'pwd1'; 2.把角色授权给用户(dbduser是普通角色): grant dbduser to use ...

  3. oracle 创建新用户,授权dba

    1.用有dba权限的用户登录:sys用户 2.创建一个新用户:create user abc identified by 123456; 3.授予DBA权限: grant connect,resour ...

  4. mysql创建新用户并且授权远程访问

    1 修改root用户的密码 linux安装了mysql后,默认情况下,如果是root用户,不需要密码就可以登陆. mysql -u root -p 然后回车就可以登陆了,如果是普通用户,不能登陆. 2 ...

  5. mysql5.6创建新用户并给授权指定的数据库权限

    一.环境: CentOS 6.8 mysql 5.6 二.背景 给外包的工作人员提供我司某台服务器的 mysql 中某个数据库的访问权限. 之所以要做限制,是防止他们对我司其他的数据库非法进行操作. ...

  6. oracle 非sys用户创建新用户 授权后 plsql看不到视图

     问题: oracle 非sys用户创建新用户 授权后  plsql看不到视图 答案: 新用户查询视图时,视图名称前需要添加 视图所属用户. 如user用户新建newUser用户,newUser用户查 ...

  7. MySQL学习(一)——创建新用户、数据库、授权

    一.创建用户 1.登录mysql mysql -u root -p 2.创建本地用户>/font> use mysql; //选择mysql数据库 create user 'test'@' ...

  8. Ubuntu创建新用户并增加管理员权限(授权有问题)

    转自:Ubuntu创建新用户并增加管理员权限 $是普通管员,#是系统管理员,在Ubuntu下,root用户默认是没有密码的,因此也就无法使用(据说是为了安全).想用root的话,得给root用户设置一 ...

  9. Mysql创建新用户后无法登录,提示 Access denied for user 'username'@'localhost' (using password: YES)

    MySQL创建新用户后无法登录,提示 Access denied for user 'username'@'localhost' (using password: YES) ,多半是因为存在匿名用户, ...

随机推荐

  1. [NOI2017]蚯蚓排队

    嘟嘟嘟 现在看来这道题还不是特别难. 别一看到字符串就想SAM 看到\(k\)很小,所以我们可以搞一个单次修改复杂度跟\(k\)有关的算法. 能想到,每一次断开或链接,最多只会影响\(k ^ 2\)个 ...

  2. node中从express到koa再到koa2的发展历程

    koa是Express的下一代基于Node.js的web框架,目前有1.x和2.0两个版本. 历史 1. Express Express是第一代最流行的web框架,它对Node.js的http进行了封 ...

  3. dsu on tree(树上启发式合并)

    简介 对于一颗静态树,O(nlogn)时间内处理子树的统计问题.是一种优雅的暴力. 算法思想 很显然,朴素做法下,对于每颗子树对其进行统计的时间复杂度是平方级别的.考虑对树进行一个重链剖分.虽然都基于 ...

  4. 内置对象 Date

    1.内置对象     a)语言自带的对象     b)提供了常用的,基本的功能     Date 1.定义的方法          a) 获取当前时间 var date1=new Date(); co ...

  5. elasticsearch利用head插件

    restful接口使用方法 RESTful接口URL的格式: http://localhost:9200///[] 其中index.type是必须提供的. id是可选的,不提供es会自动生成. ind ...

  6. 使用io/ioutil进行读写文件

    读文件: package main import ( "fmt" "io/ioutil" ) func main() { b, err := ioutil.Re ...

  7. Java和python中的面向对象

    Python与Java中的示例类 Java类是在与类同名的文件中定义的.因此,必须将该类保存在一个名为Car.java的文件中.每个文件中只能定义一个类. public class Car { pri ...

  8. abstract Factory pattern

    1,注意静态工厂(简单工厂模式).工厂方法.抽象工厂的区别 静态工厂是根据客户端传入的参数,使用工厂类来创建相应的产品接口的具体实现子类对象.比如,需要需要创建一个工具类,该工具类是为了调用外部系统, ...

  9. Linux设备驱动程序 之 poll和select

    使用非阻塞IO的应用程序经常使用select,poll,epoll系统调用:它们的功能本质上是一样的:都允许进程决定是否可以对一个或者多个打开的文件做非阻塞的读取或者写入:这些电泳也会阻塞进程,直到给 ...

  10. PIMPL(private implementantion)模式(转载)

    前记:请搜索PIMPL(private implementantion)模式和桥接模式, PIMPL是桥接模式的一种典型实现 以下转自:http://blog.csdn.net/nrc_douning ...