-----检查数据库是否存在-------
use master
go
if exists(select*from sysdatabases where name='studentdb')
drop database studentdb
------建数据库--------
create database studentdb
on primary(
name='student',
filename='d:\data\student.mdf',
size=15,
maxsize=25,
filegrowth=10%
)
log on (
name='student_log',
filename='d:\data\student_log.ldf',
size=20,
filegrowth=1
)
------修改数据库--------
alter database studentdb
modify file(
name='student_log',
maxsize=500
)
alter database studentdb
modify file(
name='student',
filegrowth=3
)
------创建表---------
use studentdb
go
if exists(select * from sysobjects where name='t_class')
drop table t_class
create table t_class(
C_Id char(6) primary key not null,
C_Number varchar(30) unique not null,
C_Depart varchar(30) null
)
use studentdb
go
if exists(select * from sysobjects where name='t_student')
drop table t_student
create table t_student(
S_Id char(6) primary key not null,
C_Id char(6) not null,
S_Name varchar(30) null,
S_Gender char(2) check(S_Gender in('男','女')) null,
S_Birthday datetime not null,
S_Nation char(10) null,
s_idcard varchar(18) check(len(s_idcard) in(15,18)) not null,
s_email varchar(50) check(s_email like '%@%') not null
)
-------向表中添加信息---------
insert into t_class values('01','软件技术班','计算机技术系')
insert into t_class values('02','网络技术班','计算机技术系')
insert into t_class values('03','会计班','经贸系')
insert into t_student (S_Id,C_Id,S_Name,S_Gender,S_Birthday,S_Nation) values ('001','01','李林','男','1998-8-9','汉')
insert into t_student (S_Id,C_Id,S_Name,S_Gender,S_Birthday,S_Nation) values ('002','01','黄莺','女','1980-11-2','满')
insert into t_student (S_Id,C_Id,S_Name,S_Gender,S_Birthday,S_Nation) values ('003','03','张华','男','1991-3-19','汉')
------修改信息---------
update t_student set S_Name='李大林' where S_Id=001
--------显示男同学的信息------
select * from t_student where S_Gender='男'
---------显示特定信息-----
select * from t_student where year(S_Birthday)=1998
--------删除特定信息-------
delete from t_student where C_Id='01'
select * from t_student
本文链接
---检查数据库是否存在
use master
go
if exists(select * from sysdatabases where name='studentdb')
drop database studentdb
----创建数据库
Create database studentdb
on primary (
name='sudent',
filename='d:\data\student.mdf',
size=10,
maxsize=50,
filegrowth=3
)
log on (
name='student-log',
filename='d:\data\student-log.ldf',
size=15,
filegrowth=15%
)
---创建第一张表
use studentdb
go
if exists (select * from sysobjects where name='t_student')
drop table t_student
create table t_student
(
sno char(3) not null,
sname char(20) null,
sdenger char(2) not null,
sbirth datetime null,
sclass varchar(20) not null
)
---创建第二张表
use studentdb
go
if exists (select * from sysobjects where name='t_course')
drop table t_course
create table t_course
(
cno char(3) not null,
cname char(20) null
)
--创建第三张表
use studentdb go
if exists (select * from sysobjects where name='t_score')
drop table t_score
create table t_score
(
sno char(3) not null,
cno char(3) not null,
score int not null
)
--修改列
alter table t_student
alter column sno char(12)
--增加列
alter table t_student
add sfavorate char(30)
--删除列
alter table t_student
drop column sfavorate
--查看表
sp_help t_student
--删除表
drop table t_student
本文链接
这两天在调用Microsoft.SqlServer.SMO.dll组件 进行数据库创建、备份、恢复操作过程中,接触到一些数据库的名词定义:登录名,用户,角色,架构,权限,部分新人对几个名词的概念不是很清晰 所以参考部分文档,摘录如下(权当温故⑧^_^):
SqlServer2008的安全机制分为四个级别:
1.操作系统的安全性
创建操作系统用户账号(win7):
2.数据库服务器的登录安全性【下面两种验证模式下登录所使用的用户名,即为:登录名定义。】
数据库服务器登录模式分为:
①Windows身份验证模式(如下图)
用户名即是:当前Windows操作系统中的用户账户,我这里是用的管理员账号(计算机名),如果系统账户有登录密码 可以相应的输入
登录成功后,设置SqlServer 验证模式如图:
②混合身份验证模式(Windows身份验证模式&SqlServer身份验证模式[前者安全性比后者高]),如下图:
在安装SQLServer2008时 会默认生成一个登录名:sa,其隶属于服务器角色:sysadmin。
而新创建的登录名,则会自动关联服务器角色:public,除了默认的数据库:master,其他的数据都将没有访问权限,如果想要访问其他数据库:
1.则需要在登录名-新建-用户映射里面勾选相应的数据库:则相应的数据库会自动创建一个同名(登录名)数据库用户账号
(注①:master数据库不勾选也是默认访问的 数据库用户里是没有同名账号。)
(注②:当登录名要删除之前 要先手动删除由登录名映射数据库而生成的用户)
2.或者在登录名-新建-服务器角色 中直接勾选sysadmin这样就可以访问所有的数据库(或在服务器角色sysadmin-右击属性-添加-登录名)了:修改服务器角色为 sysadmin 不会在数据库用户里创建同名账号。
以下是数据库服务器的角色列表以及其对应所拥有的操作权限,如下图:
3.数据库的使用安全性
登录名 只能登录进SqlServer服务器,并不能让访问服务器中的数据库,而使用登录名登录进数据库服务器后想要访问特定的数据库 还必须具有数据库用户名,用户名在特定的数据库内创建,并必须关联一个登录名,通过授权给该用户指定可以访问的数据库对象的权限
数据库用户可以新建或者由登录名映射数据库而生成。注:无论是新建的数据库用户 还是由登录名映射数据库生成的数据库用户 都要遵循 数据库用户1:1登录名的规则
数据库用户的生成需要关联数据库角色:数据库角色有三种:固定数据库角色,用户定义数据库角色,应用程序角色,如下图:
4.数据库对象的使用安全性
我们一般将表,视图,存储过程,函数 统称为数据库对象,而数据库对象包含在架构中,而给角色划分权限也就是开放架构中部分或者全部的对象做相应的执行权限操作,
数据库对象的常用权限 如下图:
权限操作分为三种:授予,拒绝,撤销,语法及代码如下
1 --授予权限操作
2 --语法:Grant {ALL|statement[,,,,n]} TO security_account[,,,n]
3 --授予角色"students_mag"对"studengs"数据库中"stu"表 delete insert update权限
4 use students
5 go
6 grant delete,inster,update
7 on stu
8 to students_msg
9 go
10 --撤销权限操作
11 --语法:revoke {all|statement[,,,n]} from security_account[,,,n]
12 --使用revoke 撤销角色"students_mag"对"studengs"数据库中"stu"表 delete insert update权限
13 use students
14 go
15 revoke delete,insert,update
16 on stu
17 from students_mag CASCADE
18 --拒绝权限操作
19 --deny {all|statement[,,,n]} to security_account[,,,n]
20 --在数据库"students"的"stu"表中执行insert操作的权限授予了public角色,然后拒绝用户guest拥有该项权限
21 use students