Oracle中怎么创建用户和表
更新时间:2023-10-24创建用户
在Oracle中创建用户的语法如下:
CREATE USER username IDENTIFIED BY password [DEFAULT TABLESPACE tablespacename] [TEMPORARY TABLESPACE temp_tablespace] [QUOTA int {K|M} ON tablespace] [PROFILE profile_name];
其中,username
为要创建的用户的名称,password
为该用户的密码。可以为该用户指定一个默认的表空间tablespacename
,临时表空间temp_tablespace
,以及在一个表空间上的配额,int
为指定大小,{K|M}
为指定单位,以KB或MB为单位。
还可以将该用户与一个Profile相关联。Profile是一个特殊的对象,它存储了用户限制和属性的集合,可以使用它来限制用户的密码过期时间、设置资源限制等等。
那么,下面给出一个示例,创建一个名为testuser
的用户:
CREATE USER testuser IDENTIFIED BY testpwd DEFAULT TABLESPACE users QUOTA UNLIMITED ON users;
创建表
Oracle中创建表的语法如下:
CREATE [GLOBAL TEMPORARY] TABLE tablename( column1 datatype [NULL | NOT NULL], column2 datatype [NULL | NOT NULL], ……, [CONSTRAINT constraint_name] PRIMARY KEY(column_name) ) [TABLESPACE tablespace_name];
其中,tablename
为要创建的表的名称,column1
、column2
等为表的列名,datatype
为列的数据类型,NULL
或NOT NULL
指定列是否允许为空。如果你想把这个表和一个表空间相关联,可以使用TABLESPACE
,tablespace_name
是空间的名称。CONSTRAINT
指定了表约束,可以是主键等属性。
我们可以创建一个名为testtable
的简单表:
CREATE TABLE testtable( id INT PRIMARY KEY, name VARCHAR(10) NOT NULL, age INT, gender VARCHAR(3) ) TABLESPACE users;
表与用户权限相关联
表在Oracle数据库中是一个独立的对象,通常是特定用户的拥有。如果该用户将表授权给其他用户,则其他用户只能查看和修改表数据,而不能查看和修改表定义。
我们可以通过谁创建表,就使用谁的用户名去对表进行操作。同时,我们可以将用户和表的相关权限授予其他用户,例如,给testuser
授予testtable
的SELECT
权限:
GRANT SELECT ON testtable TO testuser;
总结
Oracle的用户和表的创建非常直接,使用CREATE USER和CREATE TABLE语句,可以指定必要的参数来定义数据库对象的属性。可以通过使用表空间来管理数据库的对象,也可以将不同的用户权限分配给其他用户。这些都是保证数据库安全和性能的重要步骤,应该在创建用户和表时小心处理。