国产达梦数据库表空间和用户管理

国产达梦数据库表空间和用户管理

(一)表空间管理

数据库的物理结构:文件系统–数据文件
数据库的逻辑结构:数据库–表空间–段--簇–页
注意:(一个表空间只属于一个数据库,表空间有多个文件,一个表空间有多个段,一个段有多个簇,一个簇有多个连续页)

1.达梦默认的有哪些表空间?作用是什么?

1.1 可以通过SQL语句查询达梦默认的表空间
select TABLESPACE_NAME from SYS.DBA_TABLESPACES;
在这里插入图片描述
1.2 默认表空间的作用
① SYSTEM 系统表空间,存放数据字典信息
② ROLL 回滚表空间,存放的回滚数据,支持MVCC(事务多版本机制)
③ TEMP 临时表空间,存在临时数据
④ MAIN main表空间,如果用户创建数据库对象时不指定表空间,则会默认存放在main中
⑤ HMAIN Hmain表空间存放的是huge table的信息

2.如何创建一个表空间?(单位默认是MB)

案例1:创建一个表空间tbs,数据文件存放在到$DM_HOME/data/DB_NAME中,初始大小为31MB?
分析: 如果直接使用命令创建,会出现如下结果:
[执行语句1]:
create TABLESPACE tbs DATAFILE ‘/dm7/data/DAMENG/tbs.dbf’ size 31;
执行失败(语句1)
第1 行附近出现错误[-2410]:
数据文件[/dm7/data/DAMENG/tbs.dbf]大小无效
在这里插入图片描述
原因:
因为表空间的初始文件的大小是page的4096倍,通过select page;查询当前page大小
则表空间的大小至少应为为8192*4096/1014/1024=32M
在这里插入图片描述
修正:
create TABLESPACE tbs DATAFILE ‘/dm7/data/DAMENG/tbs.dbf’ size 32;
在这里插入图片描述
案例2:创建一个表空间tbs2,要求有2个数据文件,分别存放在不同的disk上,初始大小为128mb
执行SQL:
create TABLESPACE tbs2 DATAFILE ‘/dm7/data/DAMENG/disk1/TBS2_1.DBF’ size 128 AUTOEXTEND ON MAXSIZE 256, ‘/dm7/data/DAMENG/disk2/TBS2_2.DBF’ size 128 AUTOEXTEND ON MAXSIZE 256;
在这里插入图片描述
案例3:创建一个表空间tbs3,初始大小为128,自动扩展1mb,最大256m
执行SQL:
create tablespace tbs3 datafile ‘/dm7/data/DAMENG/TBS3.DBF’ size 128 autoextend on next 1 maxsize 256 ;
在这里插入图片描述

3.如何维护和管理表空间?

3.1 表空间不足的解决办法
a.创建大的表空间数据导出再导入(导入导出耗费时间)
b.把表空间数据库文件resize(会存在单个文件过大,设计不合理的问题)
c.增加数据文件(推荐)

3.2 表空间更换存储位置(相当于移动mv命令)
a.查看要更换的表空间:
select file_name,TABLESPACE_NAME from SYS.DBA_DATA_FILES where TABLESPACE_NAME=‘TBS’;
在这里插入图片描述
b.查看使用状态:
select STATUS from SYS.DBA_TABLESPACES WHere TABLESPACE_NAME=‘TBS’;
0代表在线,1代表离线
在这里插入图片描述
c.要更改表空间位置的时候,需要先离线:
alter TABLESPACE TBS OFFLINE;
在这里插入图片描述
d.更换表空间位置:
alter tablespace tbs rename datafile ‘/dm7/data/DAMENG/tbs.dbf’ to ‘/dm7/tbs/tbs.dbf’;
在这里插入图片描述
e.恢复在线状态:
alter TABLESPACE TBS ONLINE;
在这里插入图片描述
3.3 删除表空间
执行SQL:drop tablespace TBS3;
在这里插入图片描述
注意:如果表空间中存在数据是不允许删除

(二)用户管理

1.查看达梦版本
执行SQL:select * from SYS.“V$VERSION”;
在这里插入图片描述
其中:
开发版ENT:官方下载的版本,可以免费试用1年,并发10;
标准版:不支持集群,不支持高级特性;
企业版:支持集群,支持高级特性;
安全版:支持访问控制等特性.

2.默认有哪些用户?
执行SQL:select DBA_USERS.USERNAME from SYS.DBA_USERS;
在这里插入图片描述
① SYS 内置管理账户,不能登录数据库
② SYSDBA 管理员
③ SYSAUDITOR 审计员
④ SYSSSO 安全员(安全版特性)

3.规划用户
a.名字 要求以字母开头,特殊符号只能是$#_
b.存储位置 建议单独给用户分配表空间和位置
c.密码安全策略 尝试登录次数/锁定时间(防止暴力破解),密码有效期
d.权限 系统,对象
注意:创建用户的时候会生成与用户名同名的模式,如果创建的用户模式名已经存在,用户无法创建.

示例:尝试登录3次失败后,锁定1分钟,密码有效期128天
分析:
规划用户: test
用户的默认表空间为tbs2
密码尝试登录失败3次,锁定1分钟
密码有效期128天
执行SQL:create user test identified by “dameng123” limit FAILED_LOGIN_ATTEMPS 3,password_lock_time 1,password_life_time 180 default tablespace tbs2;
在这里插入图片描述
授权:
a.赋予权限
执行SQL:GRANT CREATE TABLE TO test;
在这里插入图片描述
b.撤销权限:
执行SQL:REVOKE CREATE TABLE from test;
在这里插入图片描述
4.规划角色(角色是一类权限的集合)
4.1创建角色
执行SQL:create role r1;
在这里插入图片描述
4.2角色授权
执行SQL:grant create table to r1;
在这里插入图片描述
4.3角色授权用户
执行SQL:grant r1 to test;
在这里插入图片描述
4.4查看角色有什么权限
执行SQL:select * from SYS.DBA_SYS_PRIVS WHere DBA_SYS_PRIVS.GRANTEE=‘R1’;
在这里插入图片描述
4.5查看用户有什么权限,属于哪个角色
执行SQL:select * from SYS.DBA_ROLE_PRIVS WHere GRANTEE=‘TEST’;
在这里插入图片描述

5.维护用户和角色
5.1修改密码
执行SQL:alter USER TEST IDENTIFIED BY “dm12345678”;
在这里插入图片描述
5.2锁定和解锁
锁定
执行SQL:alter USER TEST ACCOUNT LOCK;
在这里插入图片描述
解锁
执行SQL:alter USER TEST ACCOUNT UNLOCK;
在这里插入图片描述
5.2删除用户
执行SQL:drop user test;
在这里插入图片描述
5.3启用和禁用角色
启用
执行SQL:sp_set_role(‘R1’,0);
在这里插入图片描述
禁用
执行SQL:sp_set_role(‘R1’,1);
在这里插入图片描述
5.4删除角色
执行SQL:drop role R1;
在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值