数据仓库服务 GaussDB(DWS)-创建外部服务器:(可选)新建用户及数据库并授予外表权限
(可选)新建用户及数据库并授予外表权限
如果您将使用普通用户在自定义数据库中创建外部服务器和外表,由于普通用户没有外表权限无法创建,所以,您必须参照以下步骤新建用户和数据库,并授予该用户外表权限。
以下示例,是新建一个普通用户dbuser并创建一个数据库mydatabase,然后使用管理员用户授予dbuser外表权限。
- 使用数据库管理员通过 GaussDB (DWS)提供的数据库客户端连接默认数据库gaussdb。
例如,使用gsql客户端的用户执行下面命令连接数据库:
1
gsql -d gaussdb -h 192.168.2.30 -U dbadmin -p 8000 -W password -r
- 新建一个普通用户,并用它创建一个数据库。
新建一个具有创建数据库权限的用户dbuser:
1
CREATE USER dbuser WITH CREATEDB PASSWORD 'password';
切换为新建的用户:1
SET ROLE dbuser PASSWORD 'password';
执行以下命令创建数据库:1
CREATE DATABASE mydatabase;
查询数据库:
1
SELECT * FROM pg_database;
返回结果中有mydatabase 的信息表示创建成功:
1 2 3 4 5 6 7 8 910
datname | datdba | encoding | datcollate | datctype | datistemplate | datallowconn | datconnlimit | datlastsysoid | datfrozenxid | dattablespace | datcompatibility | datacl------------+--------+----------+------------+----------+---------------+--------------+--------------+---------------+--------------+---------------+------------------+---------------------------------------------------- template1 | 10 | 0 | C | C | t | t | -1 | 14146 | 1351 | 1663 | ORA | {=c/Ruby,Ruby=CTc/Ruby} template0 | 10 | 0 | C | C | t | f | -1 | 14146 | 1350 | 1663 | ORA | {=c/Ruby,Ruby=CTc/Ruby} gaussdb | 10 | 0 | C | C | f | t | -1 | 14146 | 1352 | 1663 | ORA | {=Tc/Ruby,Ruby=CTc/Ruby,chaojun=C/Ruby,huobinru=C/Ruby} mydatabase | 17000 | 0 | C | C | f | t | -1 | 14146 | 1351 | 1663 | ORA |(4 rows)
- 使用管理员用户给普通用户赋予创建外部服务器的权限和使用外表的权限。
使用数据库管理员用户通过GaussDB(DWS)提供的数据库客户端连接新建的数据库。
例如,使用gsql客户端的用户可以直接使用如下语句切换为管理员用户去连接新建的数据库:
1
\c mydatabase dbadmin;
根据提示输入管理员用户密码。
注意,必须先使用管理员用户连接到将要创建外部服务器和使用外表的数据库,再对普通用户进行授权。
默认只有系统管理员才可以创建外部服务器,普通用户需要授权才可以创建,执行以下命令授权:12
GRANT ALL ON SCHEMA public TO dbuser;GRANT ALL ON FOREIGN DATA WRAPPER dfs_fdw TO dbuser;
其中fdw_name的名字可以是hdfs_fdw或者dfs_fdw,dbuser为创建SERVER的用户名。
执行以下命令赋予用户使用外表的权限。
1
ALTER USER dbuser USEFT;
查看用户:
1 2 3 4 5 6 7 8 910111213
SELECT r.rolname, r.rolsuper, r.rolinherit, r.rolcreaterole, r.rolcreatedb, r.rolcanlogin, r.rolconnlimit, r.rolvalidbegin, r.rolvaliduntil, ARRAY(SELECT b.rolname FROM pg_catalog.pg_auth_members m JOIN pg_catalog.pg_roles b ON (m.roleid = b.oid) WHERE m.member = r.oid) as memberof, r.rolreplication, r.rolauditadmin, r.rolsystemadmin, r.roluseftFROM pg_catalog.pg_roles rORDER BY 1;
返回结果中dbuser的信息中包含了UseFT权限,表示授权成功:
12345
rolname | rolsuper | rolinherit | rolcreaterole | rolcreatedb | rolcanlogin | rolconnlimit | rolvalidbegin | rolvaliduntil | memberof | rolreplication | rolauditadmin | rolsystemadmin | roluseft-----------+----------+------------+---------------+-------------+-------------+--------------+---------------+---------------+----------+----------------+---------------+----------------+---------- dbuser | f | t | f | t | t | -1 | | | {} | f | f | f | t lily | f | t | f | f | t | -1 | | | {} | f | f | f | f Ruby | t | t | t | t | t | -1 | | | {} | t | t | t | t
- 如何创建用户并授权使用应用运维管理服务_AOM_用户权限_创建用户_权限
- 数据仓库服务GaussDB(DWS)_SQL on Anywhere
- DWS安全_数据仓库服务安全_DWS数据安全管理_DWS安全保障_DWS安全策略
- 调用GaussDB(DWS) API接口_数据仓库服务调用API_如何调用API_在DWS中调用API
- GaussDB权限管理_GaussDB数据库权限管理_高斯数据库权限管理_华为云
- GaussDB(DWS)常用SQL_常用SQL命令_SQL语法
- DWS产品介绍_DWS产品优势_DWS功能_DWS使用场景_DWS是什么
- 连接GaussDB数据库_华为高斯数据库_新建数据库_语法
- GaussDB数据库案例_GaussDB数据库的优势_华为高斯数据库_新建高斯数据库
- GAUSS(DWS)工具_gsql工具_DataStudio工具_DSC工具