分类: 数据库

Oracle、MSSQL、MySQL、NoSQL

【PostgreSQL】入门篇——如何创建、删除和管理数据库及其用户,包括权限设置和角色管理

PostgreSQL 数据库及用户管理

  1. 创建数据库
    1.1 使用 SQL 命令创建数据库
    在 PostgreSQL 中,可以使用 CREATE DATABASE 命令来创建数据库。以下是基本语法:

CREATE DATABASE database_name;

示例:

CREATE DATABASE my_database;

1.2 使用 psql 命令行工具创建数据库
打开终端或命令提示符。

使用 psql 连接到 PostgreSQL 服务器:

psql -U username -h hostname

输入以下命令创建数据库:

CREATE DATABASE my_database;

  1. 删除数据库
    2.1 使用 SQL 命令删除数据库
    使用 DROP DATABASE 命令可以删除数据库。基本语法如下:

DROP DATABASE database_name;

示例:

DROP DATABASE my_database;

2.2 注意事项
只能在没有连接到该数据库的情况下删除它。
删除数据库是不可逆的,所有数据将被永久删除。

  1. 创建用户
    3.1 使用 SQL 命令创建用户
    在 PostgreSQL 中,可以使用 CREATE USER 命令创建用户。基本语法如下:

CREATE USER username WITH PASSWORD ‘password’;

示例:

CREATE USER my_user WITH PASSWORD ‘secure_password’;

  1. 删除用户
    4.1 使用 SQL 命令删除用户
    使用 DROP USER 命令可以删除用户。基本语法如下:

DROP USER username;

示例:

DROP USER my_user;

  1. 管理用户权限
    5.1 授予权限
    使用 GRANT 命令可以授予用户权限。基本语法如下:

GRANT privilege_type ON object TO username;

示例:

GRANT ALL PRIVILEGES ON DATABASE my_database TO my_user;

5.2 撤销权限
使用 REVOKE 命令可以撤销用户的权限。基本语法如下:

REVOKE privilege_type ON object FROM username;

示例:

REVOKE ALL PRIVILEGES ON DATABASE my_database FROM my_user;

  1. 角色管理
    PostgreSQL 中的角色可以是用户或用户组。可以使用角色来管理多个用户的权限。

6.1 创建角色
CREATE ROLE role_name;

示例:

CREATE ROLE my_role;

6.2 将角色赋予用户
GRANT role_name TO username;

示例:

GRANT my_role TO my_user;

6.3 授予角色权限
GRANT privilege_type ON object TO role_name;

示例:

GRANT ALL PRIVILEGES ON DATABASE my_database TO my_role;

  1. 可能出现的问题及解决办法
    7.1 无法连接到数据库
    问题描述: 当尝试连接到数据库时,可能会出现“FATAL: database does not exist”或“FATAL: role does not exist”的错误。

解决办法:

确保数据库或角色名称拼写正确。
使用 \l 命令查看所有数据库,确认数据库是否存在。
使用 \du 命令查看所有角色,确认角色是否存在。
7.2 权限不足
问题描述: 当尝试执行某些操作时,可能会出现“permission denied”错误。

解决办法:

检查用户是否具有执行该操作所需的权限。
使用 GRANT 命令授予所需权限。
确保用户连接到正确的数据库。
7.3 删除数据库失败
问题描述: 当尝试删除数据库时,可能会出现“database is being accessed by other users”的错误。

解决办法:

确保没有其他用户连接到该数据库。可以使用以下命令查看连接信息:

SELECT * FROM pg_stat_activity WHERE datname = ‘my_database’;

如果有连接,可以使用 pg_terminate_backend 函数终止连接:

SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = ‘my_database’;

7.4 用户无法登录
问题描述: 用户尝试登录时可能会遇到“FATAL: password authentication failed for user ‘username’”的错误。

解决办法:

确保用户密码正确。
检查 pg_hba.conf 文件中的身份验证方法,确保允许用户通过密码登录。

  1. 总结
    通过上述步骤,您可以在 PostgreSQL 中创建、删除和管理数据库及其用户,设置权限和角色。了解常见问题及其解决方法将帮助您更有效地管理 PostgreSQL 数据库。
    如果您在使用过程中遇到其他问题,建议查阅 PostgreSQL 官方文档或相关社区以获取更多支持。

原文链接:https://blog.csdn.net/thinking_chou/article/details/142622817

Linux安装Oracle11G

安装Oracle 11g依赖包

#yum -y install gcc make binutils gcc-c++ compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static elfutils-libelf-devel ksh libaio libaio-devel numactl-devel sysstat unixODBC unixODBC-devel pcre-devel

Continue…

Oracle 无法监听

查看监听服务能启动或者一启动就停止,1521端口可以打开,但无法进行监听测试,查看监听日志满(4G):
\oracle\diag\tnslsnr\xxx\listener\trace\listener.log
需要手工删除日志,为方便不生成日志,直接在配置文件中取消监听日志:
\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
添加
DIAG_ADR_ENABLED_LISTENER = OFF

SQL Server 2008创建oracle链接服务器

引用自: http://www.cnblogs.com/wayne-ivan/p/4691099.html

操作系统是32位的情况下,曾经没费太多时间创建好了到oracle的链接服务器。主要要点就是:

1、安装oracle精简客户端。当时我用的是版本比较低的“oracle9i310-客户端简化版”,安装好了以后再配置对应目录(我的是C:\Oracle\ora90\network\ADMIN)下的tnsnames.ora文件。这一步做完,基本上剩余的工作就是在sql server 2008里面创建链接服务器了。

2、新建链接服务器。当时我连的oracle数据库是64位11g,虽然安装的是“oracle9i310-客户端简化版”,最终还是成功创建好了链接服务器。“服务器类型”选的是“其他数据源”,访问接口选“Microsoft OLE DB Provider for Oracle”,”产品名称“随便输了点字符,没什么影响;”数据源“就是使用tnsnames.ora里面自己设置好的名称,比如,我在里面设的名称是”JSB”,就照搬过来填在此处。“访问接口字符串”这个地方是耽误了我一段时间的,最开始我把这里空着,链接服务器当时也是创建成功了的,但是实际执行最简单的查询都始终处于执行中,没见着报错也没见到出结果。后来是把连接字符串写在这里才最终正常返回结果的!这个位置我是这样设的:data source=JSB;user=jsb123;password=jsb123;Persist Security Info=True。oracle用户名和密码是根据自己的实际情况来设。

这一步骤还没完,还要把选择页切换到“安全性”,选中“使用此安全上下文建立连接(M):”,然后输入oracle用户名和密码。最后点【确定】按钮,至此,到oracle的链接服务器创建成功!顺便补充一句,访问接口选“Oracle Provider for OLE DB”,我始终没有创建成功过,先记录下来,如有时间再琢磨了。完整截图如下:

Continue…