Oracle 创建用户,给用户授权 1. 创建用户并授权 -- 创建新用户 CREATE USER new_user IDENTIFIEDBY "strong_password" ; CREATE USER user_name IDENTIFIEDBY passwordDEFAULT TABLESPACE tablespace_nameTEMPORARY TABLESPACE TEMP ACCOUNTUNLOCK ; -- 修改密码 ALTER USER username IDENTIFIEDBY new_password; -- 设置默认表空间 ALTER USER new_userDEFAULT TABLESPACE users_tablespace; -- 授予用户CONNECT角色,该角色允许用户进行基本的数据库连接操作 GRANT CONNECT TO user_name; -- 授予用户RESOURCE角色,该角色允许用户创建表、触发器等数据库对象 GRANT RESOURCETO user_name; -- 授予用户SELECT_CATALOG_ROLE角色,使其可以查询数据字典视图(如ALL_TABLES、DBA_USERS等) GRANT SELECT_CATALOG_ROLETO user_name; -- 授予用户EXECUTE_CATALOG_ROLE角色,允许执行与数据字典相关的过程。 GRANT EXECUTE_CATALOG_ROLETO user_name; -- 授予用户SCHEDULER_ADMIN角色,使其能够管理和调度数据库任务。 GRANT SCHEDULER_ADMINTO user_name; -- 允许用户执行DBMS_WORKLOAD_REPOSITORY包中的过程。这个包用于管理性能数据。 GRANT EXECUTE ON DBMS_WORKLOAD_REPOSITORYTO user_name; -- 允许用户在表空间中使用不受限制的存储。 GRANT UNLIMITEDTABLESPACE TO user_name; -- 允许用户创建视图 GRANT CREATE VIEW TO user_name; -- 允许用户分析数据库中的任何表或索引,这通常用于优化查询性能。 GRANT ANALYZE ANY TO user_name; -- 允许用户查询数据库中任何表的数据。 GRANT SELECT ANY TABLE TO user_name; -- 允许用户执行数据库中所有存储过程的权限。这样用户就可以执行任意存储过程 GRANT EXECUTE ANY PROCEDURE TO user_name; // 设置默认配置文件,使用户登录失败的尝试次数无限制,防止账户因连续失败登录而被锁定。 ALTER PROFILEDEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED; // 设置密码到期后的宽限时间为无限制,即使密码到期,用户也不会立即失去访问权限。 ALTER PROFILEDEFAULT LIMIT PASSWORD_GRACE_TIME UNLIMITED; // 设置密码有效期无限制,用户不需要定期更换密码。 ALTER PROFILEDEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; // 设置账户被锁定后的锁定时间为无限制,确保不会因锁定时间到期自动解锁。 ALTER PROFILEDEFAULT LIMIT PASSWORD_LOCK_TIME UNLIMITED; 2. 删除用户 -- 如果不带 CASCADE 关键字,DROP USER 语句将仅删除用户,前提是该用户没有任何对象(如表、索引、序列等)。如果用户拥有任何对象,那么 DROP USER 将会失败,并返回错误信息,指示存在活动的对象。这是因为Oracle不允许直接删除拥有活动对象的用户,以防止数据丢失。 -- 当使用 CASCADE 关键字时,Oracle将首先删除用户拥有的所有对象(包括表、视图、存储过程、触发器等),然后再删除用户本身。这意味着即使用户拥有多个数据库对象,也可以通过一条语句完成删除操作。需要注意的是,这会导致所有与该用户相关的数据永久性丢失。 DROP USER user_nameCASCADE ; 3. 删除报错 cannot drop a user that is currently connected,先执行下面语句再执行删除语句 SELECT SID, SERIAL #, USERNAME FROM V$SESSION WHERE USERNAME = 'user_name'; alter systemkill session '18,77' immediate; 4. 新建表空间 CREATE TABLESPACE MST_IDX DATAFILE'/home/db/data/u01/app/oracle/oradata/orcl11g/MST_IDX.dbf' SIZE100 M AUTOEXTENDON NEXT 10 M 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:指定使用本地化管理的段空间管理,这意味着表空间的自由空间管理是由数据库自身维护的位图来完成的,而不是使用数据字典条目。