postgres 创建新用户并授权

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 1
INCREMENT BY 1
NO MINVALUE 
NO MAXVALUE
CACHE 1;

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 TableName alter column columnName type newType;
-- 下面示例character varying是一个类型, 表示无长度限制的字符串
alter table goods alter column sid type character varying;
alter table goods alter column sid type int8; 

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(255) not null,
  location varchar(255) null,
  is_ssl int2  null,
  ssl_session_timeout varchar null,
  ssl_cert_name varchar(255) null,
  ssl_cert_key_name varchar(255) null,
  proxy_pass_url varchar(255) not null,
  create_date timestamp(6) not null,
  update_date timestamp(6) null,
  remark varchar(255) 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(1,'{"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(128)[]
);

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

10. 判断表是否存在

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

11.创建唯一键约束

constraint user_info_unique_userid unique(userid)

12.查看表字段类型

-- \d 表的名字
\d sys_role

结果如下:
                                      Table "public.sys_role"
   Column    |              Type              |                     Modifiers                      
-------------+--------------------------------+----------------------------------------------------
 id          | integer                        | not null default nextval('sys_role_sqp'::regclass)
 name        | character varying(255)         | 
 value       | json                           | 
 create_date | timestamp(6) without time zone | 
 update_date | timestamp(6) without time zone | 
 remark      | character varying(255)         | 

13. 正则查询

-- 使用符号~匹配
-- "~":区分大小写,"~*"不区分大小写
-- "\A":表示以特定的字符串(string)开始,"\Z": 表示以特定的字符串(string)结尾,"\\"表示转译
-- 例子:email值:15912340000@163.com
select email from sys_user where email ~ '(\d)+.com';

14. 导入sql文件

--- 说明
--- psql -d 数据库名 -U 数据库属于的用户 -f 导入的sql文件路径
psql -d user_db -U admin -f  /home/import.sql

 

  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在PostgreSQL中创建用户并授予权限,您需要执行以下步骤: 1. 连接到您的PostgreSQL服务器。您可以使用以下命令连接到本地服务器: ``` psql -U postgres ``` 或者,如果您连接到另一台计算机上的服务器,则可以使用以下命令: ``` psql -h <server_address> -U postgres ``` 其中,`<server_address>`是您的服务器IP地址或主机名。 2. 创建一个用户。您可以使用以下命令创建一个名为`newuser`的用户: ``` CREATE USER newuser WITH PASSWORD 'password'; ``` 其中,`password`是您为该用户设置的密码。 3. 授予该用户访问数据库的权限。您可以使用以下命令授予`newuser`用户访问`mydatabase`数据库的权限: ``` GRANT ALL PRIVILEGES ON DATABASE mydatabase TO newuser; ``` 您也可以授予该用户特定表或架构的权限。例如,要授予该用户访问`mytable`表的权限,请使用以下命令: ``` GRANT ALL PRIVILEGES ON TABLE mytable TO newuser; ``` 如果您要授予该用户访问特定架构的权限,请使用以下命令: ``` GRANT ALL PRIVILEGES ON SCHEMA myschema TO newuser; ``` 4. 您还可以将该用户添加到特定的用户组中。例如,要将该用户添加到名为`mygroup`的用户组中,请使用以下命令: ``` ALTER USER newuser SET ROLE mygroup; ``` 如果该用户是`mygroup`用户组的唯一成员,则该用户将具有该用户组的所有权限。 完成了上述步骤后,您的用户将可以访问您指定的数据库、表和架构。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值