2024/05/24

今日学习时长:83分钟;

代码行数:41行

博客数量:1篇

今天主要开始了数据库实验三的操作,今天的大部分时长都在研究SQL server数据库中的用户的新建和权限修改。

SQL sever中直接用windows验证登录后可以在安全性—>登录名下新建一个用户,但是在切换为用户名+密码登录后,我发现我无法打开查看之前windows验证登录下的数据库。并且,在此用户下建立的查询文件在切换回windows验证登录后无法使用。

解决方法:新建的查询默认赋予的是你当前登录方式的账户的权限,所以只需要关闭该查询文件再在文件中打开就可以使用了,然后新建的登录名是要赋予权限的。可以在windows验证登录下找到该登录名的熟悉,服务器角色中添加sysadmin就行了。

create database students
use students

CREATE TABLE Student (
Sno char ( 7 ) PRIMARY KEY,
Sname char ( 10 ) NOT NULL,
Ssex char (2),
Sage tinyint ,
Sdept char (20)
)

CREATE TABLE Course (
Cno char(10) NOT NULL,
Cname char(20) NOT NULL,
Ccredit tinyint ,
Semester tinyint,
PRIMARY KEY(Cno)
)

CREATE TABLE SC
(
Sno char(7) NOT NULL,
Cno char(10) NOT NULL,
Grade tinyint,
XKLB char(4) ,
PRIMARY KEY ( Sno, Cno ) ,
FOREIGN KEY (Sno) REFERENCES Student (Sno),
FOREIGN KEY (Cno) REFERENCES Course (Cno)
)


go
--将 student 表中“sname”、“ssex”、“sage”的修改权限赋予自己创建的数据库用户。
grant update on Student(Sname,Ssex,Sage) to [20223717-user]
go
--将 student 表、course 表、sc 表的查询权限授予自己创建的角色。
grant select on Student to [20223717-role];
grant select on Course to [20223717-role];
grant select on SC to [20223717-role];
--拒绝自己创建的角色拥有 sc 表中 grade 的修改权限。
deny update on SC(grade) to [20223717-role];
--将自己创建的数据库用户添加为自己创建的角色成员。
exec sp_addrolemember '20223717-role','20223717-user';


--定义 course 表中 credit 属性为“3”的缺省。
alter table Course add constraint DF_Course_Credit default 3 for Ccredit;
go

 

posted @ 2024-05-24 23:50  伐木工熊大  阅读(5)  评论(0编辑  收藏  举报