达梦数据库默认使用SYSDBA用户和默认表空间进行数据库操作。但是对于业务系统开发来说,使用自定义普通表空间和用户保证数据的区分。
表空间:表空间就如同创建了一个文件夹。创建一个单独的文件夹给你来专门放DM资料,这样在查找时就可以只搜索这个文件夹,而不是整个硬盘搜索,从而提高效率。
1、创建表空间
达梦有哪些默认表空间:
select tablespace_name from dba_tablespaces;
* SYSTEM-系统表空间,存放数据字典信息
* ROLL-回滚表空间,存放的回滚数据,MVCC(事务多版本)
* TEMP-临时表空间,存放临时数据
* MAIN-main表空间,如果用户创建数据对象不指定存储位置,默认存放到main
* HMAIN-hmain表空间,存放huge table信息
创建表空间的语法:
CREATE TABLESPACE <表空间名> <数据文件子句>[<数据页缓冲池子句>][<存储加密子句>]
<数据文件子句> ::= DATAFILE <文件说明项>{,<文件说明项>}
<文件说明项> ::= <文件路径> [ MIRROR <文件路径>] SIZE <文件大小>[<自动扩展子句>]
<自动扩展子句> ::= AUTOEXTEND <ON [<每次扩展大小子句>][<最大大小子句> |OFF>
<每次扩展大小子句> ::= NEXT <扩展大小>
<最大大小子句> ::= MAXSIZE <文件最大大小>
<数据页缓冲池子句> ::= CACHE = <缓冲池名>
<存储加密子句> ::= ENCRYPT WITH <加密算法> [[BY] <加密密码>]
比如创建一个TEST表空间,达梦数据库表空间默认路径是数据库的实例路径,表空间的大小要考虑数据的量级,避免频繁扩展表空间导致IO资源的消耗。
1.1、使用SQL创建表空间和删除表空间
--创建表空间
CREATE TABLESPACE TEST DATAFILE 'TEST.DBF' SIZE 300;
--删除表空间
DROP TABLESPACE TEST;
1.2、使用达梦管理工具创建表空间
点击“新建表空间…”,弹出新建表空间窗口,如下图:
填写表空间的详细信息,同时也可以通过选择项里的DDL查看对应的sql语句,可以拷贝这里的DDL语句到disql里进行执行,如下图:
填写完成点击“确定”完成表空间创建,如下图:
2、创建用户
默认哪些用户:
select username from dba_users;
* SYS-内置管理账号,不能登录数据库
* SYSDBA-管理员
* SYSAUDITOR-审计员
* SYSSSO-安全版特有,安全员
select * from v$version; // 查询数据库是什么版本
开发版:官网的;标准版:不能集群;安全版;企业版
创建用户的语法:
CREATE USER <用户名> IDENTIFIED <身份验证模式> [PASSWORD_POLICY <口令策略>][<
锁定子句>][<存储加密密钥>][<空间限制子句>][<只读标志>][<资源限制子句>][<允许 IP 子句>][<第 3 章 数据定义语句
54
禁止 IP 子句>][<允许时间子句>][<禁止时间子句>][<TABLESPACE 子句>][<INDEX_TABLESPACE 子
句>]
<身份验证模式> ::= <数据库身份验证模式>|<外部身份验证模式>
<数据库身份验证模式> ::= BY <口令>
<外部身份验证模式> ::= EXTERNALLY | EXTERNALLY AS <用户 DN>
<口令策略> ::= 口令策略项的任意组合
<锁定子句> ::= ACCOUNT LOCK | ACCOUNT UNLOCK
<存储加密密钥> ::= ENCRYPT BY <口令>
<空间限制子句> ::= DISKSPACE LIMIT <空间大小>| DISKSPACE UNLIMITED
<只读标志> ::= READ ONLY | NOT READ ONLY
<资源限制子句> ::= LIMIT <资源设置项>{,<资源设置项>}
<资源设置项> ::= SESSION_PER_USER <参数设置>|
CONNECT_IDLE_TIME <参数设置>|
CONNECT_TIME <参数设置>|
CPU_PER_CALL <参数设置>|
CPU_PER_SESSION <参数设置>|
MEM_SPACE <参数设置>|
READ_PER_CALL <参数设置>|
READ_PER_SESSION <参数设置>|
FAILED_LOGIN_ATTEMPS <参数设置>|
PASSWORD_LIFE_TIME <参数设置>|
PASSWORD_REUSE_TIME <参数设置>|
PASSWORD_REUSE_MAX <参数设置>|
PASSWORD_LOCK_TIME <参数设置>|
PASSWORD_GRACE_TIME <参数设置>
<参数设置> ::=<参数值>| UNLIMITED
<允许 IP 子句> ::= ALLOW_IP <IP 项>{,<IP 项>}
<禁止 IP 子句> ::= NOT_ALLOW_IP <IP 项>{,<IP 项>}
<IP 项> ::= <具体 IP>|<网段>
<允许时间子句> ::= ALLOW_DATETIME <时间项>{,<时间项>}
<禁止时间子句> ::= NOT_ALLOW_DATETIME <时间项>{,<时间项>}
<时间项> ::= <具体时间段> | <规则时间段>
<具体时间段> ::= <具体日期> <具体时间> TO <具体日期> <具体时间>
<规则时间段> ::= <规则时间标志> <具体时间> TO <规则时间标志> <具体时间>
<规则时间标志> ::= MON | TUE | WED | THURS | FRI | SAT | SUN
<TABLESPACE 子句> ::= DEFAULT TABLESPACE <表空间名>
<INDEX_TABLESPACE 子句> ::= DEFAULT INDEX TABLESPACE <表空间名>
2.1、使用SQL创建用户
--创建普通用户
create user TEST identified by "123456789" default tablespace TEST default index tablespace TEST;
--赋予普通用户权限
grant "RESOURCE","PUBLIC","DBA","VTI" to TEST;
--级联删除用户下的所有对象
drop user TEST cascade;
2.2、使用达梦管理工具创建用户
点击“新建用户…”,弹出新建用户窗口,如下图:
填写创建用户的详细信息,如下图:
说明:标准版无法对密码策略进行选择。
表空间和索引表空间选择前面创建的表空间TEST。
在选择项中“所属角色”中可以选择对应的角色进行赋予,如下图:
在选择项中“系统权限”中可以对数据库系统权限进行设置,如下图:
在选择项中“对象权限”中可以对数据库对象权限进行设置,如下图:
在选择项中“资源限制”中可以查看到对数据库用户访问的设置,要保管好数据库用户的密码,尤其是SYSDBA,密码丢失无法重置,这个数据库就相当于无法使用了。如下图:
最后在DDL中可以查看所有设置对应的sql语句,如下图:
填写完成点击“确定”完成用户创建,如下图:
创建完成用户会同时自动创建一个同名的模式,如果同名的模式名称已存在则创建用户不成功。
接下来就是在模式下创建表进行各种各种的开发了。
数据库预设定的角色进行说明:
角色名称 | 角色简单说明 |
DBA | DM 数据库系统中对象与数据操作的最高权限集合,拥有构建数据库的全部特权,只有 DBA 才可以创建数据库结构 |
RESOURCE | 可以创建数据库对象,对有权限的数据库对象进行数据操纵,不可以创建数据库结构 |
PUBLIC | 不可以创建数据库对象,只能对有权限的数据库对象进行数据操纵 |