角色是一个强大的工具,使您得以将用户集中到一个单元中,然后对该单元应用权限。对一个角色授予、拒绝或废除的权限也适用于该角色的任何成员。可以建立一个角色来代表单位中一类工作人员所执行的工作,然后给这个角色授予适当的权限。当工作人员开始工作时,只须将他们添加为该角色成员,当他们离开工作时,将他们从该角色中删除。而不必在每个人接受或离开工作时,反复授予、拒绝和废除其权限。权限在用户成为角色成员时自动生效。
Microsoft® Windows NT® 和 Windows® 2000 组的使用方式与角色很相似。有关更多信息,请参见组。
如果根据工作职能定义了一系列角色,并给每个角色指派了适合这项工作的权限,则很容易在数据库中管理这些权限。之后,不用管理各个用户的权限,而只须在角色之间移动用户即可。如果工作职能发生改变,则只须更改一次角色的权限,并使更改自动应用于角色的所有成员,操作比较容易。
在 Microsoft® SQL Server™ 2000 和 SQL Server 7.0 版中,用户可属于多个角色。
以下脚本说明登录、用户和角色的添加,并为角色授予权限。
USE master
GO
sp_grantlogin 'NETDOMAIN\John'
GO
sp_defaultdb 'NETDOMAIN\John', 'courses'
GO
sp_grantlogin 'NETDOMAIN\Sarah'
GO
sp_defaultdb 'NETDOMAIN\Sarah', 'courses'
GO
sp_grantlogin 'NETDOMAIN\Betty'
GO
sp_defaultdb 'NETDOMAIN\Betty', 'courses'
GO
sp_grantlogin 'NETDOMAIN\Ralph'
GO
sp_defaultdb 'NETDOMAIN\Ralph', 'courses'
GO
sp_grantlogin 'NETDOMAIN\Diane'
GO
sp_defaultdb 'NETDOMAIN\Diane', 'courses'
GO
USE courses
GO
sp_grantdbaccess 'NETDOMAIN\John'
GO
sp_grantdbaccess 'NETDOMAIN\Sarah'
GO
sp_grantdbaccess 'NETDOMAIN\Betty'
GO
sp_grantdbaccess 'NETDOMAIN\Ralph'
GO
sp_grantdbaccess 'NETDOMAIN\Diane'
GO
sp_addrole 'Professor'
GO
sp_addrole 'Student'
GO
sp_addrolemember 'Professor', 'NETDOMAIN\John'
GO
sp_addrolemember 'Professor', 'NETDOMAIN\Sarah'
GO
sp_addrolemember 'Professor', 'NETDOMAIN\Diane'
GO
sp_addrolemember 'Student', 'NETDOMAIN\Betty'
GO
sp_addrolemember 'Student', 'NETDOMAIN\Ralph'
GO
sp_addrolemember 'Student', 'NETDOMAIN\Diane'
GO
GRANT SELECT ON StudentGradeView TO Student
GO
GRANT SELECT, UPDATE ON ProfessorGradeView TO Professor
GO
该脚本给 John 和 Sarah 教授提供了更新学生成绩的权限,而学生 Betty 和 Ralph 只能选择他们自己的成绩。Diane 因同时教两个班,所以添加到两个角色中。ProfessorGradeView 视图应将教授限制在自己班学生的行上,而 StudentGradeView 应限制学生只能选择自己的成绩。
SQL Server 2000 和 SQL Server 7.0 版在安装过程中定义几个固定角色。可以在这些角色中添加用户以获得相关的管理权限。下面是服务器范围内的角色。
固定服务器角色
描述
sysadmin
可以在 SQL Server 中执行任何活动。
serveradmin
可以设置服务器范围的配置选项,关闭服务器。
setupadmin
可以管理链接服务器和启动过程。
securityadmin
可以管理登录和 CREATE DATABASE 权限,还可以读取错误日志和更改密码。
processadmin
可以管理在 SQL Server 中运行的进程。
dbcreator
可以创建、更改和除去数据库。
diskadmin
可以管理磁盘文件。
bulkadmin
可以执行 BULK INSERT 语句。
可以从 sp_helpsrvrole 获得固定服务器角色的列表,可以从 sp_srvrolepermission 获得每个角色的特定权限。
每个数据库都有一系列固定数据库角色。虽然每个数据库中都存在名称相同的角色,但各个角色的作用域只是在特定的数据库内。例如,如果 Database1 和 Database2 中都有叫 UserX 的用户 ID,将 Database1 中的 UserX 添加到 Database1 的 db_owner 固定数据库角色中,对 Database2 中的 UserX 是否是 Database2 的 db_owner 角色成员没有任何影响。
固定数据库角色
描述
db_owner
在数据库中有全部权限。
db_accessadmin
可以添加或删除用户 ID。
db_securityadmin
可以管理全部权限、对象所有权、角色和角色成员资格。
db_ddladmin
可以发出 ALL DDL,但不能发出 GRANT、REVOKE 或 DENY 语句。
db_backupoperator
可以发出 DBCC、CHECKPOINT 和 BACKUP 语句。
db_datareader
可以选择数据库内任何用户表中的所有数据。
db_datawriter
可以更改数据库内任何用户表中的所有数据。
db_denydatareader
不能选择数据库内任何用户表中的任何数据。
db_denydatawriter
不能更改数据库内任何用户表中的任何数据。
可以从 sp_helpdbfixedrole 获得固定数据库角色的列表,可以从 sp_dbfixedrolepermission 获得每个角色的特定权限。
数据库中的每个用户都属于 public 数据库角色。如果想让数据库中的每个用户都能有某个特定的权限,则将该权限指派给 public 角色。如果没有给用户专门授予对某个对象的权限,他们就使用指派给 public 角色的权限。
② 求SQL的数据库实验报告..关于学生管理系统的..
SQL> create table stu (
2 stu_id number,
3 name varchar2(20),
4 class varchar2(20),
5 sex char(1)
6 );
表已创建。
SQL> alter table stu add constraint pk primary key (stu_id);
表已更改。
SQL> insert into stu values(1, '王昭君', '一班', 'f');
已创建 1 行。
SQL> insert into stu values(2, '杨玉环', '二班', 'f');
已创建 1 行。
SQL> insert into stu values(3, '貂蝉', '三班', 'f');
已创建 1 行。
SQL> insert into stu values(4, '西施', '四班', 'f');
已创建 1 行。
SQL> insert into stu values(5, '帅哥', '五班', 'm');
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from stu;
STU_ID NAME CLASS S
---------- -------------------- -------------------- -
1 王昭君 一班 f
2 杨玉环 二班 f
3 貂蝉 三班 f
4 西施 四班 f
5 帅哥 五班 m
SQL> delete from stu where stu_id = 5;
已删除 1 行。
SQL> update stu set sex = 'm' where stu_id = 1;
已更新 1 行。
SQL> select * from stu;
STU_ID NAME CLASS S
---------- -------------------- -------------------- -
1 王昭君 一班 m
2 杨玉环 二班 f
3 貂蝉 三班 f
4 西施 四班 f
SQL> alter table stu add column age number;
alter table stu add column age number
*
第 1 行出现错误:
ORA-00904: : 标识符无效
SQL> alter table stu add age number;
表已更改。
SQL> desc stu;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
STU_ID NOT NULL NUMBER
NAME VARCHAR2(20)
CLASS VARCHAR2(20)
SEX CHAR(1)
AGE NUMBER
SQL> update stu set age = 2000 where stu_id = 1;
已更新 1 行。
SQL> select a from (select age a from stu);
A
----------
2000
SQL> select count(*) from stu group by sex;
COUNT(*)
----------
1
3
SQL> select name from stu order by stu_id desc;
NAME
--------------------
西施
貂蝉
杨玉环
王昭君
SQL> spool off;
帮你写的
③ 求sql详细数据库实验报告,步骤~~~答好加分~~~
引用
microsoft activeX Data objects 2.X library
microsoft activeX Data objects recordset 2.X
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.ConnectionString = "Driver=;server=(local);uid=sa;pwd=;database=账户管理"
conn.ConnectionTimeout = 30
conn.Open
rs.Open "select * from 账户信息", conn, adOpenStatic, adLockReadOnly, adCmdText
text1=rs.fields("列")'实现显示功能
...
要实现查询就在rs.open的时候把条件代入
下一个上一个用rs.movenext这种方式
添加新记录的代码
with rs
.addnew
.fields("列")=text1
...
.update
end with
删除:
rs.Delete adAffectCurrent
④ 数据库实验-sql存储过程
CREATE PROCEDURE P1
@XH VARCHAR(10) AS
IF @XH NOT IN(SELECT 学号 FROM 选课) INSERT 选课 VALUES(@XH,'1',0)
ELSE IF NOT EXISTS(SELECT * FROM 选课 WHERE 学号=@XH AND 成绩>=60)
DELETE FROM 选课 WHERE 学号=@XH
ELSE SELECT * FROM 选课 WHERE 学号=@XH
⑤ 急求SQL数据库的实训总结,以及在实训中碰到的问题和体会
都差不多吧!我也写过一次,给你吧,希望能够帮到你
这个星期是我们SQL Server 数据库管理课的实训,经过一个星期的实训,让我领会到了许多平时课堂上所没有接受的课外知识,很让人受益匪浅,懂得如何去运用,而进行的一次分析设计综合的训练。而本次实训的目的是让我们掌握数据库系统的原理、技术。将理论与实际相结合,应用现有的数据库管理系统软件,规范、科学地完成一个设计与实现。
这次我们实训的内容是从数据库、数据表的创建和修改开始的,表是建立关系数据库的基本结构,用来存储数据具有已定义的属性,在表的操作过程中,有查看表信息、查看表属性、修改表中的数据、删除表中的数据及修改表和删除表的操作。从实训中让我更明白一些知识,表是数据最重要的一个数据对象,表的创建好坏直接关系到数数据库的成败,表的内容是越具体越好,但是也不能太繁琐,以后在实际应用中多使用表,对表的规划和理解就会越深刻。我们实训的另一个内容是数据库的约束、视图、查询。从中我们了解到查询语句的基本结构,和简单SELECT语句的使用,多表连接查询。而在视图的操作中,也了解到了视图是常见的数据库对象,是提供查看和存取数据的另一种途径,对查询执行的大部分操作,使用视图一样可以完成。使用视图不仅可以简化数据操作,还可以提高数据库的安全性,不仅可以检索数据,也可以通过视图向基表中添加、修改和删除数据。存储过程、触发器也是我们实训的内容之一, 在操作中有建立存储过程,执行存储过程,及查看和修改存储过程,这些都是非常基础的东西,但对用户却是非常重要的呢,只有熟悉了T_SQL语言,才能更好的掌握更多的东西。我们还学习了,SQL管理、数据的导入、导出、备份和还原。有SQL Server 安全访问控制;登录账户的管理;数据库角色的管理;用户权限管理。维护数据库的安全是确保数据库正常运行的重要工作。数据的备份是对SQL Server数据事务日志进行拷贝,数据库备份记录了在进行备份操作的数据库中所有数据的状态。而数据的备份还分为数据库完整备份、差异备份、事务日志备份、文件及文件组备份。做数据备份就是为了以后的数据库恢复用。在实训内容上我们还做了仓库管理数据库,其中的要求包含了许多数据库的对象,综合了我们所学的许多知识,让我们更努力的把所学到的东西运用上去。
实训课是在学习与探索中度过的,短暂的一星期实训是结束了,但其中让我们学到了许多知识,出现许多未知的为什么,如仓库管理数据库的初步设置、数据备份与还原的步骤,如何建立视图、触发器等一系列的问题,正是在老师和同学的共同努力之下,我们才一步步把问题解决了,最终完成了不可能完成的任务。
⑥ sql数据定义功能是什么
sql数据定义功能是:用于定义和修改数据库对象。
Sql语句分为三大类:数据定义语言,负责创建、修改、删除表、索引、视图、函数、存储过程和触发器等对象;数据操纵语言,负责数据库中数据的插入、修改、删除等操作;数据控制语言,用来授予和撤销用户权限。
数据定义语言 (Data Definition Language, DDL) 是SQL语言集中负责数据结构定义与数据库对象定义的语言,由CREATE、ALTER与DROP三个语法所组成,最早是由 Codasyl (Conference on Data Systems Languages) 数据模型开始,现在被纳入 SQL 指令中作为其中一个子集。
DDL描述的模式,必须由计算机软件进行编译,转换为便于计算机存储、查询和操纵的格式,完成这个转换工作的程序称为模式编译器。
模式编译器处理模式定义主要产生两种类型的数据:数据字典以及数据类型和结构定义。
数据字典和数据库内部结构信息是创建该模式所对应的数据库的依据,根据这些信息创建每个数据库对应的逻辑结构;对数据库数据的访问、查询也根据模式信息决定数据存取的方式和类型,以及数据之间的关系和对数据的完整性约束。
数据字典是模式的内部信息表示,数据字典的存储方式对不同的DBMS各不相同。
数据类型和结构的定义,是指当应用程序与数据库连接操作时,应用程序需要了解产生和提取的数据类型和结构。是为各种宿主语言提供的用户工作区的数据类型和结构定义,使用户工作区和数据库的逻辑结构相一致,减少数据的转换过程,这种数据类型和结构的定义通常用一个头文件来实现。
数据库模式的定义通常有两种方式: 交互方式定义模式和通过数据描述语言DDL 描述文本定义模式。
⑦ SQL数据库是什么
SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。
SQL数据库的数据体系结构基本上是三级结构,但使用术语与传统关系模型术语不同。在SQL中,关系模式(模式)称为"基本表"(base table);存储模式(内模式)称为"存储文件"(stored file);子模式(外模式)称为"视图"(view);元组称为"行"(row);属性称为"列"(column)。
(7)sql数据库的定义实验扩展阅读:
SQL数据库的优点:
1、易用性高:
适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等。
2.为数据管理与分析带来了灵活性:
允许单位在快速变化的环境中从容响应,从而获得竞争优势。从数据管理和分析角度看,将原始数据转化为商业智能和充分利用Web带来的机会非常重要。作为一个完备的数据库和数据分析包,SQLServer为快速开发新一代企业级商业应用程序、为企业赢得核心竞争优势打开了胜利之门。