达梦:【1】达梦常用操作
一、登录达梦
sql
./disql username/password@ip:port
> select * from dual;
二、创建表空间及用户模式
1、一个用户下可以有多个模式名,一个模式只能跟着一个用户,创建用户会自己生成模式,先创建表空间,再创建用户绑定表空间
sql
create tablespace "表空间名称" datafile '表空间名称.DBF' size 32 CACHE = NORMAL; --创建表空间
create user 用户名称 identified by 用户密码 default tablespace 表空间名称; --创建用户
2、创建模式
sql
CREATE SCHEMA "模式名称" AUTHORIZATION "SYSDBA";
三、查看表空间、用户、模式
1、查看表空间
sql
select * from dba_data_files; --查看所有表空间
select * from dba_free_files; --查看所有剩余表空间
2、查看用户
sql
select * from dba_users; --查看所有用户
3、查看模式
sql
SELECT DISTINCT object_name FROM ALL_OBJECTS WHERE OBJECT_TYPE = 'SCH' --查询所有的模式名
4、查看模式所属用户
sql
select
SCH_OBJ.NAME ,
SCH_OBJ.ID ,
SCH_OBJ.CRTDATE,
USER_OBJ.NAME
from
(
select NAME, ID, PID, CRTDATE from SYS.SYSOBJECTS where TYPE$='SCH'
)
SCH_OBJ,
(
select NAME, ID from SYS.SYSOBJECTS where TYPE$='UR' and SUBTYPE$='USER'
)
USER_OBJ
where
SCH_OBJ.PID=USER_OBJ.ID
ORDER BY
SCH_OBJ.NAME;
5、查看用户所属角色
sql
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE='用户名'
四、系统查询
1、查看达梦版本
sql
select name,create_time from v$database;
2、查看数据库大小写是否敏感
sql
SELECT CASE_SENSITIVE();
3、查看用户权限角色
sql
select * from DBA_SYS_PRIVS ;
4、查看所有用户
sql
select username from dba_users;
5、查看表空间
sql
select TABLESPACE_NAME from user_tablespaces;
6、查看指定表字段
sql
select * from all_tab_columns where owner='用户名' and Table_Name='表名';
五、角色管理
1、查询角色的权限
sql
select * from dba_sys_privs where grantee='角色名';
2、创建角色
sql
CREATE ROLE 角色名;
3、给角色授予resource和public的权限
sql
GRANT CREATE TABLE,CREATE INDEX TO 角色名;
4、给角色授予创建表和索引的权限
sql
GRANT CREATE TABLE,CREATE INDEX TO 角色名;
5、给角色授予查询DMHR模式下CITY表的查询权限
sql
GRANT SELECT ON DMHR.CITY TO 角色名;
6、授予角色的权限给用户
sql
GRANT 角色名 TO 用户名;
7、回收用户的角色权限
sql
REVOKE 角色名 FROM 用户名;
8、启用角色
sql
sp_set_role('角色名',1);
9、禁用角色
sql
sp_set_role('角色名',0);
10、删除角色
sql
DROP ROLE 角色名;
六、本地连多台数据库(RAC)
1、服务器创建文件【/etc/dm_svc.conf】,写入如下内容
sql
TIME_ZONE=(480)
LANGUAGE=(cn)
SUPERIP=(123.123.123.1:5236,123.123.123.2:5236,123.123.123.3:5236)
#EP_SGLJYTOR 0:均匀分布1:定向连接服务名的第T个IP,
#每次定向连接服务名的第一个IP。当IP1发生故障,间隔1s进行重连,尝试60次,若无
#法连接,再自动连接IP2。若IP2先起来,IP1后起来。因为AUT0_RECONNECT=(1),所以连
#接在IP2的连接不会切回IP1上。
[SUPERIP]
LOGIN_MODE=(1)
SWITCH_TIMES=(60)
SWITCH_INTERVAL=(1000)
EP_SGLJYTOR=(1)
AUTO_RECONNECT=(1)
2、应用连接配置
sql
<driver>dm.jdbc.driver.DmDriver</driver>
<url>jdbc:dm://SUPERIP</url>
3、应用连接达梦数据库【指定schema[1用户多个schema]】
sql
# 达梦 模式名就相当于库名
# 写法一【本人使用此种】
url: jdbc:dm://localhost:5236?schema=PERSON&compatibleMode=mysql&characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
#写法二【尝试过失败】
#url: jdbc:dm://localhost:5236/PERSON&compatibleMode=mysql&characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai