pg数据库切换用户

pg数据库切换用户,第1张

【完整步骤概述】:

1、查找配置文件位置  find / -name pg_hba.conf

2、修改配置文件  改为  无需密码登陆的方式 (步骤001)

3、执行密码修改(步骤002)

4、如果修改没有权限,需要先切换用户 ()

5、重新执行密码修改

6、恢复配置,重启服务

【解决方法】:

        1、关闭数据库服务

        2、进入数据库的工作空间目录 (如果是建库是没有另外指定,应该就是postgresql安装目录下的 data 目录)

        3、编辑修改文件 pg_hba.conf, 把连接权限设置的 md5 加密方式 改成 trust

              以我的为例,原本设置是

# TYPE DATABASEUSERADDRESS METHOD

# "local" is for Unix domain socket connections only

local all all md5

# IPv4 local connections:

hostall all 127.0.0.1/32md5

              修改为

# TYPE DATABASEUSERADDRESS METHOD

# "local" is for Unix domain socket connections only

local all all trust

# IPv4 local connections:

hostall all 127.0.0.1/32trust

          4、从新启动postgresql数据库服务

          5、可以不用密码就能用postgres用户登陆,然后执行修改用户密码的 *** 作                  

alter user postgres with password 'foobar'

           6、报错无权限,需要切换到对应有权限的用户下,再执行步骤5;

【注】修改时你可能会报错:

postgres=>alter user postgres with password '111111'

ERROR:  must be superuser to alter replication users

参考:用户切换

           7、修改 pg_hba.conf 文件,改回到 md5 方式,再重启数据库服务就ok了

【postgresql 】使用\c 命令切换数据库和用户

切换数据库:\c [database_name]

切换用户:\c - [user_name]

先连上用户postgres、数据库postgres

$ su - postgres

Last login: Wed Mar 1 13:16:48 CST 2017 on pts/1

-bash-4.2$ psql

psql (9.2.18)

Type "help" for help.

postgres=#

切换数据库

postgres=# \c zzj_db

You are now connected to database "zzj_db" as user "postgres".

zzj_db=#

切换用户

zzj_db=# \c - zzj_user

Password for user zzj_user:

You are now connected to database "zzj_db" as user "zzj_user".

zzj_db=>

1、使用组合键“Win + R”打开运行对话框,在输入框中输入 regedit 并回车打开“注册表编辑器”。

2、在“注册表编辑器”对话框,依次展开 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1名称为 ORACLE_SID 的数据 orcl 即 Oracle数据库的SID。

3、在远程连接工具 XShell使用 root 用户或者 oracle 用户连接 Linux/Unix Oracle数据库服务器。

4、输入命令 su - oracle 切换到 oracle 用户即可。

1、drop (删除表):删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表。

drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger)索引(index)依赖于该表的存储过程/函数将被保留,但其状态会变为:invalid。

2、truncate (清空表中的数据):删除内容、释放空间但不删除定义(保留表的数据结构)。与drop不同的是,只是清空表数据而已。

注意:truncate 不能删除行数据,要删就要把表清空。

3、delete (删除表中的数据):delete 语句用于删除表中的行。delete语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除 *** 作作为事务记录在日志中保存以便进行进行回滚 *** 作。

truncate与不带where的delete :只删除数据,而不删除表的结构(定义)

4、truncate table 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用delete。如果要删除表定义及其数据,请使用 drop table 语句。

5、对于由foreign key约束引用的表,不能使用truncate table ,而应使用不带where子句的delete语句。由于truncate table 记录在日志中,所以它不能激活触发器。

6、执行速度,一般来说: drop>truncate >delete。

7、delete语句是数据库 *** 作语言(dml),这个 *** 作会放到 rollback segement 中,事务提交之后才生效;如果有相应的 trigger,执行的时候将被触发。

扩展资料

例子:

1、查看数据库

2、切换数据库

3、查看数据库中已创建的表


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6631524.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存