SQL> select username from sys.dba_users;
LINEID username
---------- ----------
1 SYSAUDITOR
2 NTSICR
3 SYSSSO
4 SYSDBA
5 ITSM
6 DBOPR
7 DMUSER
8 SYS
8 rows got
在达梦数据库中,用户(USER)和模式(SCHEMA)是一对多的关系,即一个用户拥有至少一个及以上的模式,而一个模式只能属于一个用户。
1.sys -----达梦数据库内置管理用户,不能登录数据库,数据库使用的大部分的数据字典和动态性能视图sys。
2.Sysdba -----数据库的管理员
3.Sysauditor—审计用户
4.Syssso—安全用户
5.Sysdbo—数据操作员(安全版,四权分立)
如下命令可查询某用户下所有的表:(达梦默认的所有吧表和用户名都存储为大小,除非双引号里面强制写成小写)
SQL> select TABLE_NAME from sys.dba_tables where OWNER='NTSICR';
LINEID TABLE_NAME
---------- ---------------------------
1 INTERFACE_DATA_RECEIVE
2 DATA_CALL_DETAIL_GEXIAN
3 DATA_RECOVER_GEXIAN
如下命令可以给某个用户下的所有表赋权给另一个用户。
select 'grant SELECT on '||owner||'.'||table_name||' to FE ;' from all_tables where owner='CLIENT_54'; 应该就是这样的句子
如下是创建一个用户并赋某一个表查询权限。
create user "TKDMUSER" identified by "******";
SQL> grant select on ntsicr.DATA_RECOVER to tkdmuser;
executed successfully
used time: 7.438(ms). Execute id is 208104708.
测试是否授权成功:
[dmdba@p0-tsicr-tsicr-db-damengdb01-ma01 ~]$ disql
disql V8
username:tkdmuser
password:
Server[LOCALHOST:5236]:mode is primary, state is open
login used time : 2.942(ms)
SQL> select count(*) from ntsicr.DATA_RECOVER;
LINEID COUNT(*)
---------- --------------------
1 337477
select * from ntsicr.DATA_SMALL_POOL_DETAIL;
正常情况下创建一个用户并赋权如下:
创建表空间
CREATE TABLESPACE "DATATBS_NTSICR" DATAFILE '/data/dmdata/NTSICR/DATATBS_NTSICR.DBF' SIZE 2048 AUTOEXTEND ON NEXT 2048;
CREATE TABLESPACE "INDEXTBS_NTSICR" DATAFILE '/data/dmdata/NTSICR/INDEXTBS_NTSICR.DBF' SIZE 2048 AUTOEXTEND ON NEXT 2048;
--创建用户
CREATE USER "NTSICR" IDENTIFIED BY "*****" DEFAULT TABLESPACE "DATATBS_NTSICR" DEFAULT INDEX TABLESPACE "INDEXTBS_NTSICR" ;
--赋予权限
GRANT "PUBLIC","RESOURCE","VTI","SOI" TO "NTSICR";
--设置用户输错密码不锁定
alter user NTSICR limit failed_login_attemps unlimited;
--设置用户超时断开时间60min,避免非活动连接长时间不断开造成数据库锁等情况
alter user NTSICR limit CONNECT_IDLE_TIME 60;
不同角色的说明如下,这里只是列举了部分,更多角色参考达梦的安全管理手册: