Oracle 创建用户,给用户授权
1. 创建用户并授权
-- 创建新用户CREATEUSERnew_user IDENTIFIEDBY"strong_password";CREATEUSERuser_name IDENTIFIEDBYpasswordDEFAULTTABLESPACEtablespace_nameTEMPORARYTABLESPACETEMPACCOUNTUNLOCK;-- 修改密码ALTERUSERusername IDENTIFIEDBYnew_password;-- 设置默认表空间ALTERUSERnew_userDEFAULTTABLESPACEusers_tablespace;-- 授予用户CONNECT角色,该角色允许用户进行基本的数据库连接操作GRANTCONNECTTOuser_name;-- 授予用户RESOURCE角色,该角色允许用户创建表、触发器等数据库对象GRANTRESOURCETOuser_name;-- 授予用户SELECT_CATALOG_ROLE角色,使其可以查询数据字典视图(如ALL_TABLES、DBA_USERS等)GRANTSELECT_CATALOG_ROLETOuser_name;-- 授予用户EXECUTE_CATALOG_ROLE角色,允许执行与数据字典相关的过程。GRANTEXECUTE_CATALOG_ROLETOuser_name;-- 授予用户SCHEDULER_ADMIN角色,使其能够管理和调度数据库任务。GRANTSCHEDULER_ADMINTOuser_name;-- 允许用户执行DBMS_WORKLOAD_REPOSITORY包中的过程。这个包用于管理性能数据。GRANTEXECUTEONDBMS_WORKLOAD_REPOSITORYTOuser_name;-- 允许用户在表空间中使用不受限制的存储。GRANTUNLIMITEDTABLESPACETOuser_name;-- 允许用户创建视图GRANTCREATEVIEWTOuser_name;-- 允许用户分析数据库中的任何表或索引,这通常用于优化查询性能。GRANTANALYZEANYTOuser_name;-- 允许用户查询数据库中任何表的数据。GRANTSELECTANYTABLETOuser_name;-- 允许用户执行数据库中所有存储过程的权限。这样用户就可以执行任意存储过程GRANTEXECUTEANYPROCEDURETOuser_name;// 设置默认配置文件,使用户登录失败的尝试次数无限制,防止账户因连续失败登录而被锁定。ALTERPROFILEDEFAULTLIMITFAILED_LOGIN_ATTEMPTS UNLIMITED;// 设置密码到期后的宽限时间为无限制,即使密码到期,用户也不会立即失去访问权限。ALTERPROFILEDEFAULTLIMITPASSWORD_GRACE_TIME UNLIMITED;// 设置密码有效期无限制,用户不需要定期更换密码。ALTERPROFILEDEFAULTLIMITPASSWORD_LIFE_TIME UNLIMITED;// 设置账户被锁定后的锁定时间为无限制,确保不会因锁定时间到期自动解锁。ALTERPROFILEDEFAULTLIMITPASSWORD_LOCK_TIME UNLIMITED;2. 删除用户
-- 如果不带 CASCADE 关键字,DROP USER 语句将仅删除用户,前提是该用户没有任何对象(如表、索引、序列等)。如果用户拥有任何对象,那么 DROP USER 将会失败,并返回错误信息,指示存在活动的对象。这是因为Oracle不允许直接删除拥有活动对象的用户,以防止数据丢失。-- 当使用 CASCADE 关键字时,Oracle将首先删除用户拥有的所有对象(包括表、视图、存储过程、触发器等),然后再删除用户本身。这意味着即使用户拥有多个数据库对象,也可以通过一条语句完成删除操作。需要注意的是,这会导致所有与该用户相关的数据永久性丢失。DROPUSERuser_nameCASCADE;3. 删除报错 cannot drop a user that is currently connected,先执行下面语句再执行删除语句
SELECTSID,SERIAL#, USERNAME FROM V$SESSION WHERE USERNAME = 'user_name';altersystemkillsession'18,77'immediate;4. 新建表空间
CREATETABLESPACEMST_IDX DATAFILE'/home/db/data/u01/app/oracle/oradata/orcl11g/MST_IDX.dbf'SIZE100M AUTOEXTENDONNEXT10M MAXSIZE UNLIMITED LOGGING ONLINE PERMANENT EXTENT MANAGEMENTLOCAL;-- CREATE TABLESPACE:这是创建表空间的基本语法。-- MST_IDX:这是你要创建的新表空间的名字。-- DATAFILE '/home/db/data/u01/app/oracle/oradata/orcl11g/MST_IDX.dbf':指定了新表空间的数据文件的位置和文件名。在这个例子中,数据文件将位于 /home/db/data/u01/app/oracle/oradata/orcl11g/ 目录下,并命名为 MST_IDX.dbf。-- SIZE 100M:定义了初始大小为100MB。-- AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED:设置自动扩展功能,每次扩展10MB,最大大小不受限制(即可以无限增长)。-- LOGGING:表明这是一个支持事务的日志记录的表空间。几乎所有的表空间都是日志记录的。-- ONLINE:表示这个表空间是在线的,可以立即使用。-- PERMANENT:表明这是一个持久表空间,不是临时表空间。-- EXTENT MANAGEMENT LOCAL:指定使用本地化管理的段空间管理,这意味着表空间的自由空间管理是由数据库自身维护的位图来完成的,而不是使用数据字典条目。