-- 一、 导出/导入(Export/Import)
---- 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回Oracle数据库中去。
---- 1 简单导出数据(Export)和导入数据(Import)
---- Oracle支持三种类型的输出:
---- (1)表方式(T方式),将指定表的数据导出。
---- (2)用户方式(U方式),将指定用户的所有对象及数据导出。
---- (3)全库方式(Full方式),将数据库中的所有对象导出。
---- 数据导出(Import)的过程是数据导入(Export)的逆过程,它们的数据流向不同。
---- 2 增量导出/导入
---- 增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为exportdmp,如果不希望自己的输出文件定名为exportdmp,必须在命令行中指出要用的文件名。
---- 增量导出包括三个类型:
---- (1)“完全”增量导出(Complete)
---- 即备份整个数据库,比如:
---- $exp system/manager inctype=complete file=990702dmp
---- (2) “增量型”增量导出
---- 备份上一次备份后改变的数据。比如:
---- $exp system/manager inctype=incremental file=990702dmp
---- (3) “累计型”增量导出(Cumulative)
---- 累计型导出方式只是导出自上次“完全” 导出之后数据库中变化了的信息。比如:
---- $exp system/manager inctype=cumulative file=990702dmp
---- 数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效地完成。
---- 比如数据库的备份任务可作如下安排:
---- 星期一:完全导出(A)
---- 星期二:增量导出(B)
---- 星期三:增量导出(C)
---- 星期四:增量导出(D)
---- 星期五:累计导出(E)
---- 星期六:增量导出(F)
---- 星期日:增量导出(G)
---- 如果在星期日,数据库遭到意外破坏,数据库管理员可按以下步骤来恢复数据库:
---- 第一步:用命令CREATE DATABASE重新生成数据库结构;
---- 第二步:创建一个足够大的附加回段。
---- 第三步:完全增量导入A:
---- $imp system/manager inctype= RECTORE FULL=Y FILE=A
---- 第四步:累计增量导入E:
---- $imp system/manager inctype= RECTORE FULL=Y FILE =E
---- 第五步:最近增量导入F:
---- $imp system/manager inctype=RESTORE FULL=Y FILE=F
---- 二、 冷备份
---- 冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份是将关键性文件拷贝到另外位置的一种说法。对于备份Oracle信息而言,冷备份是最快和最安全的方法。冷备份的优点是:
---- 1.是非常快速的备份方法(只需拷贝文件)
---- 2.容易归档(简单拷贝即可)
---- 3.容易恢复到某个时间点上(只需将文件再拷贝回去)
---- 4.能与归档方法相结合,作数据库“最新状态”的恢复。
---- 5.低度维护,高度安全。
---- 但冷备份也有如下不足:
---- 1.单独使用时,只能提供到“某一时间点上”的恢复。
---- 2.在实施备份的全过程中,数据库必须要作备份而不能作其它工作。也就是说,在冷备份过程中,数据库必须是关闭状态。
---- 3.若磁盘空间有限,只能拷贝到磁带等其它外部存储设备上,速度会很慢。
---- 4.不能按表或按用户恢复。
---- 如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将所备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。冷备份中必须拷贝的文件包括:
---- 1.所有数据文件
---- 2.所有控制文件
---- 3.所有联机REDO LOG文件
---- 4.Initora文件(可选)。
---- 值得注意的是冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的
---- 下面是做冷备份的完整例子:
---- (1) 关闭数据库$sqldba lmode=y
---- SQLDBA >connect internal;
---- SQLDBA >shutdown normal;
---- (2) 用拷贝命令备份全部的时间文件、重做日志文件、控制文件、初始化参数文件
---- SQLDBA >! cp < file > < backup directory >
---- (3) 重启Oracle数据库
---- $sqldba lmode=y
---- SQLDBA >connect internal;
---- SQLDBA >startup;
---- 三、 热备份
---- 热备份是在数据库运行的情况下,采用archivelog mode方式备份数据的方法。所以,如果你有昨天夜里的一个冷备份而且又有今天的热备份文件,在发生问题时,就可以利用这些资料恢复更多的信息。热备份要求数据库在Archivelog方式下 *** 作,并需要大量的档案空间。一旦数据库运行在archivelog状态下,就可以做备份了。热备份的命令文件由三部分组成:
---- 1.数据文件一个表空间一个表空间地备份。
---- (1)设置表空间为备份状态
---- (2)备份表空间的数据文件
---- (3)恢复表空间为正常状态
---- 2.备份归档log文件。
---- (1)临时停止归档进程
---- (2)log下那些在archive redo log目标目录中的文件
---- (3)重新启动archive进程
---- (4)备份归档的redo log 文件
---- 3.用alter database backup controlfile命令来备份拷贝文件
---- 热备份的优点是:
---- 1.可在表空间或数据文件级备份,备份时间短。
---- 2.备份时数据库仍可使用。
---- 3.可达到秒级恢复(恢复到某一时间点上)。
---- 4.可对几乎所有数据库实体作恢复。
---- 5.恢复是快速的,在大多数情况下在数据库仍工作时恢复。
---- 热备份的不足是:
---- 1.不能出错,否则后果严重。
---- 2.若热备份不成功,所得结果不可用于时间点的恢复。
---- 3.因难于维护,所以要特别仔细小心,不允许“以失败而告终”。
grant insert on sc to 用户名
比如你的用户名叫user
grant insert on sc to user
那个table没必要写哦
你用的什么数据库?
方便的话把你语句帖出来
你说的那个用户和学生表里的用户根本不是一回事啊,这里说的用户是指数据库用户,你看学生用户是用哪个数据库用户登录的,把权限给这个数据库用户授权
那就要看你用的什么做的系统了,每种系统应该不一样的
要不你就建点数据库用户,授权查询和insert
grant select,insert on sc to user
你把user改成数据库中的用户,user我只是用来代替数据库用户的
--------补充---------
1确认验证模式
在 SQL Server Management Studio 中,对象资源管理器,主机名上点右键,主机属性,安全,确认"服务器身份验证"为"SQL和Windows身份验证模式"
2新建登录名
在主机名树下的安全性中,添加登录名,在登录名项上右键,新键登录名
例:登录名:User01,模式为SQL验证,密码:User01
去掉"强制实施密码策略"的复选,默认数据库指向你允许访问的数据库
还没有完,别急着点确定
3用户映射
在左侧列表中,点击"用户映射",找到你允许访问的数据库,在前面打对勾
在下方的"数据库角色成员身份"只,赋于对应的权限
相关角色的权限说明,可以在网上搜索,例如:
>
grant select,update,insert on database to 'user1'@'localhost' identified by '123456' with grant option;
将database库的所有权限赋予用户user1;
用户user1只能从本地登陆,密码为123456,且可以将自己有的权限赋给其他用户。
SELECT VTABLE_NAME FROM SYSDBA_TAB_COLUMNS V
WHERE VCOLUMN_NAME = 'A'
AND VOWNER='SCOTT';
SQL语言用GRANT语句向用户授予 *** 作权限,GRANT语句的一般格式为:
GRANT <权限>[,<权限>]
[ON <对象类型> <对象名>]
TO <用户>[,<用户>]
[WITH GRANT OPTION];
其语义为:将对指定 *** 作对象的指定 *** 作权限授予指定的用户。
不同类型的 *** 作对象有不同的 *** 作权限,常见的 *** 作权限如表3-4所示。
表3-4 不同对象类型允许的 *** 作权限
对象 对象类型 *** 作权限
属性列 TABLE SELECT, INSERT, UPDATE, DELETE ALL PRIVIEGES
视图 TABLE SELECT, INSERT, UPDATE, DELETE ALL PRIVIEGES
基本表 TABLE SELECT, INSERT, UPDATE, ALTER, INDEX,DELETE ALL PRIVIEGES
数据库 DATABASE CREATETAB
详细信息…
接受权限的用户可以是一个或多个具体用户,也可以是PUBLIC即全体用户。
如果指定了WITH GRANT OPTION子句,则获得某种权限的用户还可以把这种权限再授予别的用户。如果没有指定WITH GRANT OPTION子句,则获得某种权限的用户只能使用该权限,但不能传播该权限。
例1
把查询Student表权限授给用户U1
GRANT SELECT ON TABLE Student TO U1;
例2
把对Student表和Course表的全部权限授予用户U2和U3
GRANT ALL PRIVILIGES ON TABLE Student, Course TO U2, U3;
例3
把对表SC的查询权限授予所有用户
GRANT SELECT ON TABLE SC TO PUBLIC;
例4
把查询Student表和修改学生学号的权限授给用户U4
详细信息…
这里实际上要授予U4用户的是对基本表Student的SELECT权限和对属性列Sno的UPDATE权限。授予关于属性列的权限时必须明确指出相应属性列名。完成本授权 *** 作的SQL语句为:
GRANT UPDATE(Sno), SELECT ON TABLE Student TO U4;
例5
把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户
GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION;
详细信息…
执行此SQL语句后,U5不仅拥有了对表SC的INSERT权限,还可以传播此权限,即由U5用户发上述GRANT命令给其他用户。
例如U5可以将此权限授予U6:
GRANT INSERT ON TABLE SC TO U6 WITH GRANT OPTION;
同样,U6还可以将此权限授予U7:
GRANT INSERT ON TABLE SC TO U7;
因为U6未给U7传播的权限,因此U7不能再传播此权限。
例6
DBA把在数据库S_C中建立表的权限授予用户U8
GRANT CREATETAB ON DATABASE S_C TO U8;
需要办理授权手续。国外的数据库是按照数据结构来组织、存储和管理数据的仓库,没有授权使用需要办理授权手续。权限是指为了保证职责的有效履行,任职者必须具备的,对某事项进行决策的范围和程度。
数据库的 *** 作,表的 *** 作,很重要,但是我感觉对于数据库的安全才是最重要的,来看看该怎么管理好自己的数据库吧,该注意的地方已经做了注释,希望大家可以好好学习。
在本机设置数据库管理员初始密码
[root@xu MySQL]# mysqladmin -hlocalhost -uroot password "123"
修改密码 (要知道之前的密码)
[root@xu mysql]# mysqladmin -hlocalhost -uroot -p password "456"
Enter password:
--创建登录账号
CREATE LOGIN USER1 WITH PASSWORD='123';
GO
--打开授权的数据库(假设给数据库TEST授权)
USE TEST
GO
--将登录账号映射为当前数据库用户
CREATE USER USER1 FOR LOGIN USER1
GO
--授予用户对当前数据库所有表具有查询权
EXEC sp_addrolemember 'db_datareader', 'USER1'
以上就是关于怎么用export给用户授权数据库全部的内容,包括:怎么用export给用户授权数据库、数据库 授权、mysql 如何对一个帐号授权对数据库的读写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)