SQL SERVER 2数据库实现(二)
table Student
(
StuNo int identity(1,1) primary key,
StuName varchar(20) not null,
ClaNo int not null
)
go
if OBJECT_ID('Class','table') is not null
drop table Class go
create table Class
(
ClaNo int identity(1,1) primary key,
ClaName varchar(20) not null,
)
新增一列
alter table Student
add StuSex bit null
go
删除一列
alter table Student
drop column StuSex
go
修改一列
alter table Student
alter column StuSex int null
go
主键约束
alter table Student
add constraint PK_Student_StuNo primary key(StuNo)
go
唯一约束
alter table Student
add constraint UQ_Student_StuName unique(StuName)
go
检查约束
alter table Student
add constraint CK_Student_StuName check(len(StuName) > 10)
go
默认值约束
alter table Student
add constraint DF_Student_StuName default 'zs' for StuName
go
外键约束
alter table Student
add constraint FK_Student_Class_ClaNo foreign key(ClaNo) references Class(ClaNo)
go
主键约束(Primary Key Constraint) PK :要求主键列数据唯一,并且不允许为空 唯一约束(Unique Constraint) UQ :要求该列唯一,允许为空,但只能出现一个空值。 检查约束(Check Constraint) CK :某列取值范围限制、格式限制等,如有关年龄的约束 默认约束(Default Constraint)DF :某列的默认值,如我们的男性学员较多,性别默认为“男” 外键约束(Foreign Key Constraint) FK :用于两表间建立关系,需要指定引用主表的那列
select * from Student insert into Student values('张三',0)
权限
create login zhangsan with password = '123456'
create user zhangsan for login zhangsan
grant revoke deny
deny select on Student to zhangsan
create role username grant select on Student to username
SQLServer 添加用户 添加角色 分配权限
EXEC sp_addlogin 'newlogin','123456','master'
--创建用户 --创建一个简单的用户,如果不指定用户名,则添加到当前数据库登录名中,如果不指定角色,则该用户默认属于public角色。下为添加newlogin登录名。
EXEC sp_adduser 'newlogin'
--创建一个带用户名的用户,用户可以与登录名相同(同上一种类似),也可以不同,但要设定当前登录名,用户角色可选,默认为public。下为将用户newuser添加到newlogin登录名中。
EXEC sp_adduser 'newlogin','newuser'
--创建角色 EXEC sp_addrole 'newrole' --下为将用户下为将用户newuser添加到newlogin登录名中。并指定newrole角色。
EXEC sp_adduser 'newlogin','newuser','newrole'
--为角色newrole赋予jobs表的所有权限
GRANT ALL ON jobs TO newrole
--为角色newrole赋予sales表的查、改权限
GRANT SELECT,UPDATE ON sales TO newrole
--禁止角色newrole使用employees表的插入权限
DENY INSERT ON employees TO newrole
另一种创建用户和赋予角色的方式 --为登录newlogin在数据库中添加安全账户newuser
EXEC sp_grantdbaccess 'newlogin','newuser'
--添加newuser为角色newrole的成员 EXEC sp_addrolemember 'newrole','newuser'
--数据库用户、角色、登录的删除操作 --删除当前数据库用户
EXEC sp_revokedbaccess 'newuser';
--删除数据库登录
EXEC sp_droplogin 'newlogin'
--删除数据库角色
EXEC sp_droprole 'newrole'
--从数据库角色(newrole)中删除用户(newuser)
EXEC sp_droprolemember 'newrole', 'newuser'
--用SQL代码新建登录、用户 --创建带密码的mylogin登录名,MUST_CHANGE 选项需要用户首次连接服务器时更改此密码。
CREATE LOGIN mylogin WITH PASSWORD = '123456' MUST_CHANGE;
--创建映射到凭据的登录名。 --以下示例将创建mylogin登录名。此登录名将映射到mycredential凭据。
CREATE LOGIN mylogin WITH PASSWORD = '123456', CREDE