bsp; SELECT * FROM employee
OUTPUT to employee.exp
FORMAT ASCII;
卸载和重新装入数据库 :
当你打算修改(比如页面尺寸)数据库选项或是想回收因删除而造成的空闲空间时,必须对数据库进行卸载和重新装入
卸载和重新装入:
dbunload
dbinit
利用交互SQL reload.sql 文件
重构-rebuild (采用缺省命令行选项)
REBUILD old_db_name new_db_name passwrd
1. 执行 dbunload
DBUNLOAD -c "ENG=public;DBN=sample;UID=dba;PWD=sql" c:\unload
2. 执行 dbinit
3. 利用交互SQL读取 reload.sql READ reload.sql
数据库的重构 :
自动处理 dbunload, dbinit及 reload.sql
语法
rebuild old-database new-database [dba-password]
实例
rebuild mydata mynewdata sql
小 结 :
1、SELECT, INSERT, DELETE和 UPDATE 是4个最基本的SQL 语句。
2、Adaptive Server Anywhere 提供了多种内置函数,极大地丰富了 SELECT 操作的功能从而可获取多种无法从数据表中直接得到的信息
3、当利用聚集函数计算总计时,可以用 GROUP BY 子句标明是在什么层次上作总计。
4、连接(Join)操作是按垂直方向对多个表的数据进行检索和组合.
5、子查询的含义是指在另一个 SELECT 语句中又含有一个或多个 SELECT 语句.
6、合并( UNION)操作是从多个表中检索数据并按水平方向把它们组合起来。
jazy 回复于:2003-02-23 16:47:28
用户与安全性
目 标
识别在数据库被初始化时所建立的ID
建立用户和用户组
解释用户和用户组之间的关系
识别ASA所支持的各类权限
利用GRANT或REVOKE来指派权限。
内 容
数据库的安全性和权限
创建用户
指派用户权限
创建用户组
安全性与权限
数据库安全管理的手段有:
用户 ID 口令 权限 用户组
用户组:
用户组是由用户成员构成的
一个用户可以是多个用户组的成员
一个用户组可以是另一个用户组的成员
用户组可以简化权限的管理
SYS 和 PUBLIC:
SYS 用户和用户组:
1、它是系统表及系统视图的主人
2、没有口令
3、不能以 SYS身份连接数据库
4、系统表不能被用户或 DBA修改
PUBLIC 组 :
1、它是 SYS组的一个成员
2、有权SELECT系统表及视图
3、不能以 PUBLIC身份连接数据库 自版本 6.0.3之后支持
DBA ID :
1、有权修改除系统表以外所有数据库
2、最初的口令是 SQL
3、要限制具有 DBA权限的人数
DBO ID
1、用作与 ASE 的可兼容性
2、它是与 ASE兼容的系统表的主人
数据控制语言(DCL)的使用:
1、利用 DCL来建立用户,用户组并为其授权
2、有两个动词: grant 和revoke
3、DCL语句是自动被提交的
建立用户和设定口令 :
1、建立用户ID
2、改变已有用户ID的口令
3、实例
GRANT CONNECT TO mary IDENTIFIED BY bluesky;
GRANT CONNECT TO mary, george IDENTIFIED BY bluesky, sheep;
GRANT CONNECT TO mary IDENTIFIED BY redapple;
删除用户:
1、删去用户 ID
要具有 DBA 权限 ,该用户所拥有的对象也都被删除
2、实例
REVOKE CONNECT FROM mary;
REVOKE CONNECT FROM mary, george;
分派用户权限:
可以分派以下各类权限:
1、EXECUTE 权
2、对表的操作权
3、RESOURCE 权
4、DBA 权
下面将按其受限制程度由低到高的次序来讨论
EXECUTE 权限
1、允许用户执行指定的存储过程
2、利用存储过程用户可以要求执行并没有按常规方式授权的命令,比如,用户若有权执行一个能修改数据的存储过程,他并不需要具有 UPDATE权限
3、获得存储过程的执行权并未获得对基础对象的某种权限
对表的操作权 :
SELECT
INSERT
UPDATE
DELETE
ALTER 改变表结构
REFERENCES 增加索引和键值
ALL 上述的所有权限
特殊权限:
1、RESOURCE 权限
2、建立和删除如下数据库对象的权限 (表 存储过程 视图 函数)
3、DBA权限
4、所有数据库权限 能建立及删除用户口令 能访问所有的表
5、注意,各项权限应分别授予!
EXECUTE 权限的授予和回收 :
授予或回收对一个存储过程的执行权
实例
GRANT EXECUTE ON employee_update to mary;
GRANT EXECUTE ON employee_update to jane, bob, gary, mike;
REVOKE EXECUTE ON employee_update from mary;
授予对表的操作权限 :
基本语法 :
GRANT [SELECT (column-name, …) | INSERT | UPDATE (column-name, …) | DELETE | ALTER | REFERENCES | ALL] ON table-name TO userid
以下用户可以对表或视图执行此命令:
1、DBA
2、对象主人
3、靠 GRANT OPTION获得权力的用户
授予对表的如下操作权限 :
1、SELECT — 用户可对表的数据进行读取 ,可只限于某些列
2、INSERT — 用户可对表插入数据
3、UPDATE — 用户可修改表数据 ,可只限于某些列
4、DELETE – 用户 可删去表中数据
5、ALTER — 用户可执行 ALTER TABLE命令 注意,它会使模式 (schema)改变!
6、REFERENCES — 用户可增加索引和键
7、ALL-授予上述所有权限
授予对表进行操作的权限 :
GRANT SELECT ON department TO mary;
GRANT INSERT ON department TO george;
GRANT UPDATE (dept_head_id)ON department TO george;
GRANT ALTER ON department TO george;
GRANT ALL ON department TO george;
一次授予多种权限 :
用一个语句可实现授予多种权限,
GRANT SELECT, INSERT, UPDATE (dept_head_id) ON department
TO mary, jane, joe;
获得再授权的权力 :
DBA 或表的主人,可把对表进行操作授权的权力传递给其它用户。
GRANT SELECT ON department TO mary WITH GRANT OPTION;
特殊权限 :
有两类特殊权限:
1、RESOURCE
用户可以建立数据库对象 GRANT RESOURCE to mary;
2、DBA
让用户能对该数据库实现全部控制
GRANT DBA to mary;
权限的回收 :
回收用户的某些权限
REVOKE INSERT ON department FROM mary; REVOKE RESOURCE FROM bob;
权限的级联回收 :
在完成以下一系列操作之后,用户 bob, mary及 jane 都会失去对employee表的SELECT权力。
1、DBA 执行 :
GRANT SELECT ON employee TO mary WITH GRANT OPTION;
2、Mary 执行
GRANT SELECT ON employee TO bob, jane;
3、DBA 又执行
REVOKE SELECT ON employee from mary;
建立用户组:
1、采用用户组可简化授权的管理
2、任何用户组都自动成为 PUBLIC组的成员
3、一个用户 ID可成为多个用户组的成员
4、一个用户组还能是另一个用户组的成员
建立用户组 :
1、建立用户 ID
在创建时如果不加 IDENTIFIED BY 选项,则只能创建一个用户组,它不能象常规的用户那样去连接数据库。
2、可利用Grant group 语句对一个用户 ID冠以用户 组状态。
实例 :
以下的 accounting 用户组可以一个用户身份等录
GRANT CONNECT TO accounting IDENTIFIED BY orange;
GRANT GROUP TO accounting;
以下的 payrol用户组不能以用户身份登录
GRANT CONNECT to payroll;
GRANT GROUP to payroll;
用户组权限 :
用户组成员可以继承针该用户组对以下对象以明显方式所获得的权力:
表
视图
存储过程
以下几方面的权限不能为组成员所继承:
属主权
DBA 权限
RESOURCE 权限
GROUP 权限
PUBLIC用户组 :
1、所有的用户都自动成为该组的成员
2、利用 PUBLIC 用户组,授权所有的用户都可访问某些表
GRANT SELECT ON table-name TO PUBLIC
用户组属主 :
在访问属于本组的对象时,不必在其名字前加属主名。
实例:
1、sales_order 表若属于 accounting用户组
2、Mary 正好是 accounting 用户组的成
3、则Mary 可执行如下的语句
SELECT * FROM sales_order;
建立属于用户组的对象 :
1、具有CONNECT特权的用户组ID可直接登录数据库并建立其自己的数据库对象。
2、对于不具有 CONNECT特权的用户组可由 DBA 为其建立对象
实例 CREATE TABLE accounting.sales_order…;
3、组内成员在访问本组对象时,无须在该对象名字前面缀以组名。
增加用户组成员 :
1、可把一个用户或用户组增加为另一组的成员。
2、DBA或用户组主人可完成此功能
3、实例
使一个用户成为某个用户组的成员
GRANT MEMBERSHIP IN GROUP accounting TO mary;
使一个用户组成为另一个用户组的成员
GRANT MEMBERSHIP IN GROUP finance TO accounting;
Mary 同时具有 accounting 和 finance 两个组的特权
由用户组中删去成员 :
1、DBA 或用户组主人可完成此功能。
2、实例
REVOKE MEMBERSHIP IN GROUP accounting FROM mary;
Mary不再是 accounting 或 finance用户组的成员了。
小 结 :
1、ASA为每个新的数据库都能自动地创建 SYS 和PUBLIC 用户组以及 DBA 和 DBO ID。
2、在建立了用户 ID和口令之后你可以利用 SQL的数据控制语句 GRANT 及 REVOKE.分派权限。
3、可以授予用户的权限有以下几类: EXECUTE 存储过程,对表的操作,RESOURCE 及 DBA 特权。
4、当用户刚被建立,它就成了 PUBLIC用户组的成员。
5、针对存储过程的授权是指对其的可执行权
6、对单个用户 ID分别授权会很耗时且易失误。利用用户组来管理权限会更加有效。
jazy 回复于:2003-02-23 17:30:51
事务处理:
目 标
1、定义一个事务
2、解释在Adaptive Server Anywhere环境下什么时候开始一个事务
3、解释什么是保存点以及什么时候提交在保存点完成的改变
4、说明Adaptive Server Anywhere如何能保障能把事务当作一个原子化的工作单元来处理
5、识别并描述Adaptive Server Anywhere中所采用的三类锁
6、解释事务的阻塞以及它是如何在Adaptive Server Anywhere中被设置的
7、识别两类死锁以及如何使死锁的发生极小化
8、识别四种隔离级别以及何种应用采用何种隔离级别
内 容
1、事务
2、事务原子化
3、事务可恢复性
4、事务一致性
事务:
1、事务的原子化 :
事务中的所有语句要么全部执行要么一个也不执行。
2、事务的可恢复性
当系统出现故障之后,事务必须被恢复。
3、事务一致性
同时执行的各事务绝对不能对彼此的数据造成 “污染”。
链式(Chained)事务模式:
1、在出现下列情形后的第一个语句开始一个事上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页 |