NC57创建用户、表空间、授权sql语句实例
- 格式:rtf
- 大小:33.38 KB
- 文档页数:1
在SQL Server中有三种特殊的用户:系统管理员、用户数据库所有者(建立相应数据库的数据库用户)DBO、一般用户。
系统管理员对整个系统有操作权;用户数据库所有者对他所建立的数据库具有全部操作权利;一般用户对给定的数据库只有被授权的操作权限。
数据库用户一般可分为用户组,任一数据库在建立后即被赋予一个用户组public。
1、建立SQL服务器用户名(登录帐号)作为一个用户,为了使用SQL Server,他必须在SQL Server上有一个SQL服务器用户名(登录帐号)。
这个帐号是系统管理员通过sp_addlogin来增加的。
sp_addlogin 登录名,口令,库名,语言,全名例:建立用户a, 口令为123456(最低六位),全名为aaa1> sp_addlogin a,test,null,null,aaa2> go3> select * from syslogins4> go2、增加数据库用户名同样,为了使用SQL Server上的数据库,他必须在数据库中有一个用户名,这个用户名是数据库所有者通过sp_adduser来增加的。
数据库用户名不必和用户帐户一样,而且在不同的数据库中用户名可以不同。
多个用户可以有相同的SQL Server帐户。
同样,多个SQL Server帐户可以有相同的数据库名。
sp_adduser 登录名,别名,组名登录名为用户的SQL服务器登录名;别名为用户在数据库中的用户名;组名为用户所属的数据库用户组。
例:用户a增加为test的用户,别名为a1,属于用户组china1>sp_addgroup china2>go1>sp_adduser a,a1,china2>go1> sp_helpuser2> go*例:删除别名a1,用户组china,登录名a1> use test2> go3> sp_dropuser a14> go5> sp_helpuser6> go1>sp_dropgroup china2>go1> sp_helpgroup2> go3> use master4> go5> sp_droplogin a6> go7> select * from syslogins8> go3、数据库操作授权grant 命令序列to 用户名A. 系统管理员可以授予其他用户CREATE DATABASE的权限,使其他用户可以成为数据库所有者。
1 在SQL SERVER 中,如何通过SQL语句来创建数据库用户并设置权限?SQL 2008-12-29 13:39:57 阅读90 评论0 字号:大中小订阅添加登录帐号和用户sp_addloginsp_addusergrant 授予权限编程管理SQL SERVER的帐号每个人都关心数据安全。
如果不关心的话,可能没有意识到访问服务器中的敏感数据是非常容易的。
因为SQL SERVER在这方面已经替我们考虑过了,所以在我们开发应用程序就可以直接使用SQL SERVER的安全策略。
在SQL SERVER中,我们可以在ENTERPRISE MANAGER中创建一个登录帐号,并且赋予一定的权限,如果要做到我们的应用程序中呢?============================================================================= =SQL SERVER提供了如下系统过程▲▲一、SP_ADDLOGIN创建新的Microsoft SQL Server 登录,使用户得以连接使用SQL Server 身份验证的SQL Server 实例。
语法sp_addlogin [ @loginame = ] 'login'[ , [ @passwd = ] 'password' ][ , [ @defdb = ] 'database' ][ , [ @deflanguage = ] 'language' ][ , [ @sid = ] sid ][ , [ @encryptopt = ] 'encryption_option' ]参数登录的名称。
login 的数据类型为sysname,没有默认设置。
[@passwd =] 'password'登录密码。
password 的数据类型为sysname,默认设置为NULL。
ORACLE基本SQL语句-⽤户及建表篇⼀、⽤户相关SQL语句/*新建⽤户*/create user SA identified by 2013;说明:SA⽤户名,2013密码/*授权connect,resource给⽤户sa*/grant connect,resource to sa;说明:CONNECT⾓⾊: --是授予最终⽤户的典型权利,最基本的。
ESOURCE ⾓⾊: --是授予开发⼈员的/*查询所有的⽤户*/select * from all_users;/*将表STU查询权限授予SA*/GRANT SELECT ON STU TO SA/*将表STU添加权限授予SA*/GRANT INSERT ON STU TO SA/*将表STU更新权限授予SA*/GRANT UPDATE ON STU TO SA/*将表STU删除权限授予SA*/GRANT DELETE ON STU TO SA⼆、建表篇/*建表指定表空间*/create table KC(KC_NO varchar2(10) not null,KC_NAME varchar2(50) not null) tablespace TEST;create table STU(STU_ID varchar2(10) not null,STU_NAME varchar2(50) not null,STU_AGE number(2) not null,STU_SET number(2) not null,KC_NO varchar2(10) not null) tablespace TEST;说明:本⽂使⽤2张表分别为学⽣表STU,课程表KC,两张表分别存在TEST表空间中。
/*创建约束,设置主键*/ALTER TABLE STU ADD PRIMARY KEY(STU_ID)ALTER TABLE KC ADD PRIMARY KEY(KC_NO)/*查看表空间的表*/Select table_name, tablespace_name from dba_tables where tablespace_name='TEST'/*查询所有的表*/select table_name,tablespace_name,temporary from user_tables。
USE mydbGO--1. 新建测试用户--1.1 添加登录用户和密码EXEC sp_addlogin N'tony','123'--1.2 使其成为当前数据库的合法用户EXEC sp_grantdbaccess N'tony'--2.设置操作授权--2.1 授予对自己数据库的所有权限EXEC sp_addrolemember N'db_owner',N'tony'--2.2 以下是设置具体操作权限--授予tony对所有用户表的操作权限GRANTSELECT,INSERT,UPDATE,DELETETO tony--授予tony SELECT,UPDATE到具体的表GRANTSELECT,UPDATEON tb TO tony--授予tony SELECT,UPDATE到具体的表和列GRANTSELECT,UPDATEON tb(id,col)TO tony--禁止tony对所有用户表的操作权限DENYSELECT,INSERT,UPDATE,DELETETO tony--禁止tony SELECT,UPDATE到具体的表DENYSELECT,UPDATEON tb TO tony--禁止tony SELECT,UPDATE到具体的表和列DENYSELECT,UPDATEON tb(id,col)TO tony--删除tony 对所有用户表的授权信息REVOKESELECT,INSERT,UPDATE,DELETETO tony--授予tony对具有创建表、视图、存储过程等的操作权限GRANTCREATETABLE,CREATEVIEW,CREATEPROCTO tony--禁止tony对具有创建表、视图、存储过程等的操作权限DENYCREATETABLE,CREATEVIEW,CREATEPROCTO tony--删除tony对具有创建表、视图、存储过程等的授权信息REVOKECREATETABLE,CREATEVIEW,CREATEPROCTO tonyGO--注:更多相关授权信息参考后面的附表中“数据库权限”列。
------------------------1.创建用户及权限等语句:----------------------------------------(1)创建用户及赋予密码:create user liuer identified by liuer;--(2)给新创建的用户赋予权限:grant create session to liuer;--登录权限】grant dba to liusx;--赋予dba 的权限grant connect ,resource,dba to liusx;grant connect ,resource to liuer;grant insert,delete,update,select on liuer.test_temp3 to lihl;--给lihl赋予查询liuer用户下的test_temp3表grant select any table on liuer to lihl;--(3)修改用户的密码:alter user liuer identified by liuer123;alter user scott identified by liuer123;--(4)查看用户select * from user_users;--(5)查看所有用户及用户所在的表空间select username,default_tablespace from dba_users;--(6)修改用户的表空间alter user 用户名default tablespace 表空间名字;alter user liuer default tablespace liuer_data ;--例子--(7)创建用户时并赋予表空间create user lihl identified by liuer123default tablespace liuer_data;alter user liusx default tablespace liuer_data ;--------------------------2.表空间相关问题:---------------------------------------(1)创建表空间create tablespace liuer_data datafile 'D:\APP\LIUER\ORADATA\ORCL\liuer_data.DBF' size 1024M; --(2)查看一下所有用户所在的表空间:select username,default_tablespace from dba_users;--(3)查看表空间名及存储路径:select tablespace_name,file_name from dba_data_files;--(4)查看表空间的名称及大小SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_sizeFROM dba_tablespaces t, dba_data_files dWHERE t.tablespace_name = d.tablespace_nameGROUP BY t.tablespace_name;--(5)查看表空间物理文件的名称及大小SELECT tablespace_name,file_id,file_name,round(bytes / (1024 * 1024), 0) total_spaceFROM dba_data_filesORDER BY tablespace_name;--(6)查看表空间是否自动增长SELECT FILE_NAME,TABLESPACE_NAME,AUTOEXTENSIBLE FROM dba_data_files;--(7)设置表空间自动增长ALTER DATABASE DATAFILE 'D:\APP\LIUER\ORADATA\ORCL\liuer_data.DBF' AUTOEXTEND ON;--打开自动增长ALTER DATABASE DATAFILE 'D:\APP\LIUER\ORADATA\ORCL\liuer_data.DBF' AUTOEXTEND ON NEXT 100M ;--每次自动增长200mALTER DATABASE DATAFILE 'D:\APP\LIUER\ORADATA\ORCL\liuer_data.DBF' AUTOEXTEND ON NEXT 100M MAXSIZE 4096M;--每次自动增长200m,数据表最大不超过4G--(8)删除空表空间,包含物理文件drop tablespace tablespace_name including contents and datafiles;--(9)更改数据表大小alter database datafile 'D:\APP\LIUER\ORADATA\ORCL\LIUER01.DBF' resize 1024M;--(10)创建临时表空间,并自增长,并限制最大存储空间create temporary tablespace liuer_temptempfile 'D:\APP\LIUER\ORADATA\ORCL\liuer_temp.dbf'size 50mautoextend onnext 50m maxsize 2048mextent management local;--(11)创建数据空间,并自增长,并限制最大存储空间create tablespace file_dataloggingdatafile 'D:\oracledata\file_data.dbf'size 50mautoextend onnext 50m maxsize 2048mextent management local;--(12)查看临时表空间select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files;----------------------------其他相关---------------------------------------------------(1)查看数据库版本SELECT versionFROM product_component_versionWHERE substr(product, 1, 6) = 'Oracle';--(2)查看数据库创建日期SELECT created, log_mode, log_mode FROM v$database;--(3)--(4)--(5)。
一、搭建开发环境工具:Eclipse数据库:Oracle安装NC模块并建立帐套用户。
1.1 安装和配置插件首先下载nc.uap.mde系列插件,然后安装,安装即把插件直接考贝Eclipse 的plugin目录下,由于Eclipse的bug,如果曾经安装过,请把configuration 目录下的内容除了config.ini外其他文件都删除,在此启动Eclipse即可。
设置Window->Prefreence->MDE DevelopmentNC Home:基础技术平台的运行环境根目录。
复选框<Include client class/jar in Build Classpath>:表示是否把模块的client 下的类加入到构件路径。
如果你的模块不依赖别的模块的客户端代码,请取消该选择。
DatasourseDriverList:开发环境的配置信息(在配置时,要把其他的配置信息删除掉,只留下design),关联文件在NC Home的\ierp\bin\prop.xml。
Database Type:数据库类型,选择的是ORACLE11G。
ModuleSelectionNC模块勾选。
Client Connection客户端连接配置,对应机器ip和端口。
启动客户端时根据此处配置连接。
1.2 新建MDE项目直接创建:File→New→Project→MDE Development→Module project ,按照Wizard进行工作,开发一个新的工程项目转化:方式为在一个非MDE工程中,右击工程,在弹出菜单中点击<Convert to Module Project>。
src/public:存放服务接口和实体类(VO),前台调用后台文件的接口。
src/private:后台实现类。
src/client:前台UIMETA-INF:配置文件针对上面的卡法模式,我们规范一下代码的包结构:nc.itf.<模块名>: 表示该模块定义的接口(public)nc.impl.<模块名>:表示该模块定义的接口实现(private)nc.vo<模块名>: 表示VO的实现(public)nc.bs.<模块名>: 普通的后台应用(private)nc.ui.<模块名>.*: 客户端代码(client)1.3 建立数据表命名规则表名:模块名_XXX 主键:pk_XXX( 必须是20位的字符) 建立PDM文件,表字段:pk_group:所属集团char(20)pk_corp:公司char(4)creator:创建人 char(20)createtime:创建时间char(19)modifier:修改人char(20)modifytime:修改时间char(19)dr:删除标识int 默认值:default 0ts:时间戳char(19)默认值:default to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’)建立完成后将相应sql 复制并生成到相应数据库中。
Oracle创建用户并给用户授权查询指定表或视图的权限用sys账户登录数据库进行如下操作:CREATE USER NORTHBOUND IDENTIFIED BY NORTHBOUNDDEFAULT TABLESPACE "TBS_DNINMSV31"TEMPORARY TABLESPACE "TEMP2"QUOTA UNLIMITED ON "TBS_DNINMSV31";GRANT "CONNECT" TO NORTHBOUND;ALTER USER NORTHBOUND DEFAULT ROLE NONE;GRANT CREATE SESSION TO NORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNDEVICE" TO NORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNSUBNE" TO NORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNPACKAGE" TO NORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNPORT" TO NORTHBOUND;【注】:在用NORTHBOUND登录后查询的时候要在视图前加上DNINMSV31,否则会报表或视图不存在。
例如:select * from DNINMSV31.V_DNDEVICE; --可以正常执行select * from DNINMSV31.TB_DEVICE where rownum<5; --执行的时候会报表或视图不存在--------------------------------------------------------------------------------------------------GRANT debug any procedure, debug connect session TO hnckb;grant select on sys.dba_pending_transactions to hnckb;grant CREATE VIEW,CREA TE JOB,CREATE SYNONYM to hnckb;grant CONNECT,RESOURCE to hnckb;1.标准角色CONNECTRESOURCE2.系统权限CREATE VIEWCREATE DATABASE LINKCREATE JOBCREATE SYNONYMUNLIMITED TABLESPACE更改定额命令:ALTER USER 名称QUOTA 0 ON 表空间名ALTER USER 名字QUOTA (数值)K|M|UNLIMITED ON 表空间名;使用方法:A、控制用户数据增长B、当用户拥有一定的数据,而管理员不想让他在增加新的数据的时候。
SQL_server⽤户、⾓⾊创建,权限授予1. ⾸先在 SQL Server 服务器级别,创建登陆帐户(create login)create login system_dbowner with password='usercode1', default_database=订单数据库登陆帐户名为:“system_dbowner”,登陆密码:"usercode1”,默认连接到的数据库:“订单数据库”。
默认连接到的数据库:“订单数据库”。
这时候,system_dbowner 帐户就可以连接到 SQL Server 服务器上了。
但是此时还不能访问数据库中的对象(严格的说,此时system_dbowner 帐户默认是 guest 数据库⽤户⾝份,可以访问 guest 能够访问的数据库对象)。
要使system_dbowner 帐户能够在 “订单数据库”中访问⾃⼰需要的对象,需要在数据库 “订单数据库” 中建⽴⼀个“数据库⽤户”,赋予这个“数据库⽤户” 某些访问权限,并且把登陆帐户“system_dbowner” 和这个“数据库⽤户” 映射起来。
习惯上,“数据库⽤户” 的名字和 “登陆帐户”的名字相同,即:“system_dbowner”。
创建“数据库⽤户”和建⽴映射关系只需要⼀步即可完成。
2. 创建数据库⽤户(create user):create user system_dbowner for login system_dbowner with default_schema=dbo并指定数据库⽤户“system_dbowner” 的默认 schema 是“订单数据库”。
这意味着⽤户“system_dbowner” 在执⾏“select * from t”,实际上执⾏的是 “select * from 订单数据库.t”。
3. 通过加⼊数据库⾓⾊,赋予数据库⽤户“dba”权限:exec sp_addrolemember 'db_owner', 'system_dbowner'此时,system_dbowner就可以全权管理数据库“订单数据库” 中的对象了。
Oracle数据库创建表空间、建立用户、授权、还原备份创建用户一般分四步:第一步:创建临时表空间第二步:创建数据表空间第三步:创建用户并制定表空间第四步:给用户授予权限--Oracle创建临时表空间如果没有指定的临时表空间,则可以不建CREATE TEMPORARY TABLESPACE DB_TEMPTEMPFILE'E:\Oa Data\OA_TEMP.DBF'SIZE32MAUTOEXTEND ONNEXT32M MAXSIZE UNLIMITEDEXTENT MANAGEMENT LOCAL;--Oracle创建表空间如果没有指定的表空间,则可以不建CREATE TABLESPACE DB_DATALOGGINGDATAFILE'E:\Oa Data\OA_DATA.DBF'SIZE32MAUTOEXTEND ONNEXT32M MAXSIZE UNLIMITEDEXTENT MANAGEMENT LOCAL;--创建用户“oa”,密码“oa”CREATE USER OA IDENTIFIED BY OAACCOUNT UNLOCKDEFAULT TABLESPACE DB_DATATEMPORARY TABLESPACE DB_TEMP;--授权GRANT CONNECT,RESOURCE,DBA TO OA;--导入dmp文件到数据库这个必须用命令窗口来执行,不是SQL语句--用户名就是要导入的用户,要导入给A,那用户名就是A imp 用户名/密码@数据库实例名file=文件地址full=y ignore=y; exp system/123456@orcl file=oa.dmp owner=oa full=y;使用expdp和impdp时应该注重的事项:1、exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。
2、expdp和impdp是服务端的工具程序,他们只能在oracle服务端使用,不能在客户端使用。
Oracle新建⽤户、⾓⾊,授权,建表空间的sql语句oracle数据库的权限系统分为系统权限与对象权限。
系统权限( database system privilege )可以让⽤户执⾏特定的命令集。
例如,create table权限允许⽤户创建表,grant any privilege 权限允许⽤户授予任何系统权限。
对象权限( database object privilege )可以让⽤户能够对各个对象进⾏某些操作。
例如delete权限允许⽤户删除表或视图的⾏,select权限允许⽤户通过select从表、视图、序列(sequences)或快照(snapshots)中查询信息。
每个oracle⽤户都有⼀个名字和⼝令,并拥有⼀些由其创建的表、视图和其他资源。
oracle⾓⾊(role)就是⼀组权限(privilege)(或者是每个⽤户根据其状态和条件所需的访问类型)。
⽤户可以给⾓⾊授予或赋予指定的权限,然后将⾓⾊赋给相应的⽤户。
⼀个⽤户也可以直接给其他⽤户授权。
Oracle创建⽤户的语法:Oracle创建⽤户(密码验证⽤户),可以采⽤CREATE USER命令。
CREATE USER username IDENTIFIED BY passwordOR IDENTIFIED EXETERNALLYOR IDENTIFIED GLOBALLY AS ‘CN=user'[DEFAULT TABLESPACE tablespace][TEMPORARY TABLESPACE temptablespace][QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace[,QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace[PROFILES profile_name][PASSWORD EXPIRE][ACCOUNT LOCK or ACCOUNT UNLOCK]其中,CREATE USER username:⽤户名,⼀般为字母数字型和“#”及“_”符号。