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