达梦数据库表空间及用户管理介绍

1. 表空间

数据库的物理结构:文件系统--> 数据文件

数据库的逻辑结构:数据库-->表空间-->段-->簇-->页

达梦数据库表空间及用户管理介绍_第1张图片

  • 达梦有哪些表空间

    select tablespace_name from dba_tablespaces;
    ​
    * SYSTEM-系统表空间,存放数据字典信息
    * ROLL-回滚表空间,存放的回滚数据,MVCC(事务多版本)
    * TEMP-临时表空间,存放临时数据
    * MAIN-main表空间,如果用户创建数据对象不指定存储位置,默认存放到main
    * HMAIN-hmain表空间,存放huge table信息

     

  • 创建一个表空间

    案例1:创建一个表空间tbs,数据文件存放到$DM_HOME/data/DB_NAME中,初始文件大小为31M

    错误:create tablespace tbs datafile '/dm7/data/DAMENG/tbs.dbf' size 31; // 因为初始文件大小是要page的4096倍
    create tablespace tbs datafile '/dm7/data/DAMENG/tbs.dbf' size 32;
    select page*4096/1024/1024;

    案例2:创建一个表空间tbs2要求2个数据库文件,数据存放到不同的磁盘,初始大小为32,最大100M

    cd /dm7/data/DAMENG
    mkdir disk{1,2}
    create tablespace tbs2 datafile '/dm7/data/DAMENG/disk1/tbs2_1.dbf' size 32 autoextend on maxsize 100, '/dm7/data/DAMENG/disk2/tbs2_2.dbf' size 32 autoextend on maxsize 100;
    ​
    select page;

    案例3:规划表空间tbs3,初始文件大小32M,每次扩展1M,最大33M

    create tablespace tbs3 datafile '/dm7/data/DAMENG/tbs3.dbf' size 32 autoextend on next 1 maxsize 33;
    

     

  • 维护和管理表空间

    * 表空间不足
    create table test tablespace tbs3 as select * from v$dm_ini;
    insert into test select * from test;
    ​
    1.创建大的表空间数据导出再导入
    2.把表空间数据文件resize
    3.增加数据文件(推荐使用)
    alter tablespace tbs3 add datafile '/dm7/data/DAMENG/tbs3_1.dbf' size 32 autoextend on maxsize 50;
    ​
    * 表空间更换存储位置
    select tablespace_name, file_name from dba_data_files where tablespace_name='TBS'; // 查询表空间存储文件位置
    // 注意:表空间更换存储位置要求表空间offline
    select tablespace_name, status from dba_tablespaces; // 查询是否offline,0是online,1是offline
    alter tablespace tbs offline; // 设置表空间offline
    alter tablespace tbs rename datafile '/dm7/data/DAMENG/tbs.dbf' to '/dm7/data/DAMENG/tbs/tbs.dbf'; //更改存储位置
    alter tablespace tbs online; // 设置表空间online
    ​
    * 删除表空间
    drop tablespace tbs3; // 如果表空间有数据,不允许直接删除

     

2. 用户管理

  • 默认哪些用户

    select username from dba_users;
    ​
    * SYS-内置管理账号,不能登录数据库
    * SYSDBA-管理员
    * SYSAUDITOR-审计员
    * SYSSSO-安全版特有,安全员
    ​
    select * from v$version; // 查询数据库是什么版本
    开发版:官网的;标准版:不能集群;安全版;企业版
     
  • 规划用户

    * 用户-字母开头,只能含有$#_三个特殊符号
    * 存储位置-表空间
    * 密码安全策略-尝试登陆次数、锁定时间,密码有效期
    * 权限(系统,对象)
    ​
    规划用户test,用户的默认表空间为tbs2,密码尝试登陆3次,失败锁定1分钟,密码有效期180天,可以创建表,可以查询dmhr.city
    create user test identified by "dameng123" limit failed_login_attemps 3, password_lock_time 1,password_life_time 180 default tablespace tbs2; // 创建用户
    grant create table to test; // 授权
    grant select on dmhr.city to test; // 授权
    revoke table xx from test; // 撤销授权
    revoke select on dmhr.city from test; // 撤销授权

     

  • 规划角色

    拥有的角色:public resource dba

    create role r1;
    grant create table on r1;
    grant selet on dmhr.city to r1;
    grant r1 to test;
    ​
    select grantee, privilege from dba_sys_privs where grantee = 'test';
    select grantee, granted_role from dba_role_privs where grantee='test';
    select grantee, privilege from dba_sys_privs where grantee = 'r1';

     

  • 维护用户和角色

    * 修改密码
    alter user test identified by 12345678;
    ​
    * 锁定和解锁
    alter user test account lock;
    alter user test account unlock;
    select username, account_status from dba_users;
    ​
    * 删除用户
    drop user test; // 删除用户,用户无创建表等数据时可删除
    drop user test cascade; // cascade级联删除用户创建的表等
    ​
    * 启用和禁用角色
    sp_set_role('r1', 0); // 0是禁用,1是启用
    ​
    * 删除角色
    drop role r1;
    ​
    注意:创建用户的时候会生成一个与用户名同名的模式;如果创建用户时,模式名已经存在则无法创建用户

     

你可能感兴趣的:(达梦数据库,dm,表空间)