当前位置: 代码迷 >> 综合 >> Sql安全性
  详细解决方案

Sql安全性

热度:86   发布时间:2023-09-06 13:18:27.0

关于SQL安全性,不能不涉及到权限的问题,比如在CSDN,用户只能更改自己的信息,而不能改别人的信息,我们的身份证号,我们的电话号码我们的很多信息,都在数据库里存放着,数据库管理员可以有不同的权限,最高权限就所有的数据库的所有操作都可以,往下可能只能看到某些个数据库。

往下可能某个数据库的某些个表。

DBMS如sqlserver自然提供了这样的机制,由于本人还在学习阶段,就尽量用查询语句写出来少用DBMS的用户友好界面。

create login 陈尚云 with password = 'root'

Sql安全性

数据库一进去不是第一步这个图连接对象资源管理器嘛,那这个登陆不是有一个登录名和密码嘛。

上面的代码就是创建一个这样的账号的。

那么,登陆进去不代表可以对数据库操作。

Sql安全性

看,进是进去了,但是啥也不能干!在人家数据库公司大门口,看着人家的建筑物外壳,大标题阿里巴巴,京东,人家都不要你。可怜巴巴。也就是给了个参观游客的资格。

那比如说独孤九台特别想去数据库1号华为公司看一看怎么办,就恳求老大管理员,老大你让我进去看看吧。

然后sa root (老大) ,就说,好吧看在你这么诚心,让你进去我华为公司(某数据库)看看

首先选中某数据库

use university

然后创建用户,为谁创建,为登录名创建

例如刚才陈尚云登陆了。我就可以让陈尚云在华为公司看一看

create user 陈尚云db for login 陈尚云

他的许可证叫做陈尚云db,这个可以自己取名字

Sql安全性

看,创建了以后,陈尚云就可以打开这个数据库了,其他的都打不开。

但是展开表,啥也没有哈哈,看不见。

这是第一步。第二就是授予权限,

GRANT SELECT ON Student TO 陈尚云db(注意这里是在这个数据库里的用户名)而不是登录名

执行以后,刷新就可以看到表里有一张Sql安全性

大概意思就是这,然后剩下的就授权授权授权,这时候只能查询,啥不能干。

同样的,我可以捧你就可以杀你。给你权限照样能收回,万一哪天我犯错误了老板可以给我升职也可以把我开除。

可以赋予权限就可以回收权限。

回收语句

revoke select on student from 陈尚云db

学习的过程中要学会对比,对比帮助理解记忆。

grant selet  on Student to 陈尚云db

revoke select on student from 陈尚云db

 

很容易发现,grant就是赋予,赋予什么?后面跟着的就是selct,delte之类的权限。

                                                那个表的权限,on     

                                                 给谁:to

                     revoke                 grant

                      on                       on

                     from                     to

 

  相关解决方案