--对权限这块一直是糊里糊涂的,没整怎么明白,以前也看过一些资料,始终没弄懂
--所有步骤都是在SSMS下操作的,我先说说我的步骤,再说说我的疑惑
--(利用SA用户)创建登录名appuser1
--数据库DBTEST中有一张表dbo.t1
--在数据库DBTEST中--创建架构app1
--在数据库DBTEST中--创建用户名appuser1,默认架构为app1
--此时用户appuser1可以登录DBtest,但是没有任何建表以及增删查改的权限
--到这里也没问题,毕竟没有任何权限
--修改AppUser1授权为数据库角色成员的db_ddladmin
--可以create table了,因为有默认架构,创建的表为app1.t1
--同时也可以操作dbo.t1,包括增删查改,也可以drop dbo.t1
--我要怎么授权appuser1?
--让appuser1操作自己的架构app1下的数据库对象,
--“行使”其权限(创建app1下的数据库对象,对app1下的表增删查改等,但是不能操作甚至访问dbo.t1)
--目的就是,使这个用户在其指定的schema下,有足够的(创建数据库对象的)权限
--而不干涉不属于他的schema下的数据库对象
--这里的问题就是授权db_ddladmin后,权限似乎过大了。
--如果我要授权,这个步骤是否可行?或者有其他的授权方式?
--新建一个空库,在当前库中建个schema schema1,
--新建一个用户,授权db_ddladmin,默认架构为schema1
--让这个用户在这个库中随便折腾,是否可行?
--假如一个服务器上有数十个数据库,数百个呢?
--因为确实存在几百个“数据库”
--(我这里目前是oracle,oracle是表空间,就是在同一个实例下,几百个表空间)
--主要是我在想,换做sqlserver的话,改怎么管理这些库
--这个权限改如何管理?
USE [PermissionTest]
GO
ALTER AUTHORIZATION ON SCHEMA::[App] TO dbo
GO
use [PermissionTest]
GO
GRANT ALTER ON SCHEMA::[App] TO [Appuser]
GO
GRANT CREATE TABLE TO [Appuser]
GO
select *
from sys.database_principals
where type_desc = 'DATABASE_ROLE'
这个跟:主体、安全实体、角色、权限这些都有关系
另外,为了方便授权,可以创建角色,比如,在oracle中的connect角色有创建会话的权限,而resource有create table、create sequence,create procedure 等等的权限,这个都是系统权限。
有了这些系统权限,这个用户就可以开始创建自己的表,然后去用了。
同样的,sql server也是一样的,也有角色,比如数据库方面的角色:
select *
from sys.database_principals
where type_desc = 'DATABASE_ROLE'
我自己在想,新建账号,对应一个新的数据库,
给予db_ddladmin的角色权限,应该就差不多了
只是把库换做oracle中的“表空间”的换成sqlserver的“数据库”
(一般是,oracle中,同一个库中,某个用户管理着自己下面的对象
换做sqlserver的话,我给你新建个数据库,给你个db_ddladmin的角色
你在自己的数据库里建立数据库对象,随便折腾了
)
嗯,你说的很对。
其实不需要给这个用户一堆权限,因为本质上,这个用户下面的对象都是他自己创建的,不管是表、存储过程、还是函数、触发器,都是他自己创建的,所以他就自动有操作这些对象的权限。
这个就和oracle下面的scott用户,下面一堆表,什么dept,emp,其实最开始,scott只有resource、connect权限,后面都是scott自己创建了这些表的,所以他就可以操作这些对象了,而不需要再通过sys,来授予其他的对象权限了
这个跟:主体、安全实体、角色、权限这些都有关系
另外,为了方便授权,可以创建角色,比如,在oracle中的connect角色有创建会话的权限,而resource有create table、create sequence,create procedure 等等的权限,这个都是系统权限。
有了这些系统权限,这个用户就可以开始创建自己的表,然后去用了。
同样的,sql server也是一样的,也有角色,比如数据库方面的角色:
select *
from sys.database_principals
where type_desc = 'DATABASE_ROLE'
我自己在想,新建账号,对应一个新的数据库,
给予db_ddladmin的角色权限,应该就差不多了
只是把库换做oracle中的“表空间”的换成sqlserver的“数据库”
(一般是,oracle中,同一个库中,某个用户管理着自己下面的对象
换做sqlserver的话,我给你新建个数据库,给你个db_ddladmin的角色
你在自己的数据库里建立数据库对象,随便折腾了
)
嗯,你说的很对。
其实不需要给这个用户一堆权限,因为本质上,这个用户下面的对象都是他自己创建的,不管是表、存储过程、还是函数、触发器,都是他自己创建的,所以他就自动有操作这些对象的权限。
这个就和oracle下面的scott用户,下面一堆表,什么dept,emp,其实最开始,scott只有resource、connect权限,后面都是scott自己创建了这些表的,所以他就可以操作这些对象了,而不需要再通过sys,来授予其他的对象权限了
每次跟两位交流,都能解开不少的疑惑,感谢!!!
我感觉自己基础不行,人又懒,太惭愧了!
晚上看那个“非你莫属”,58同城招的那个用脚写代码的无臂少年的那期
有老板问“byte”的取值范围,
这个我也只是模模糊糊记得正负都是2的7次方,两遍最大数的绝对值差1
不知道是左边还是右边,后来在查,才知道是二进制的原码,反码,补码的作用结果
至于为什么要用“原码,反码,补码”,
突然想起来上学时候老师吐沫飞溅地在讲台上讲为什么要用“原码,反码,补码”这些
当然不管是程序中,还是数据库中,应该原理都是一样,又翻书,看数据库中各个整型的取值范围
一年老一年,反思的东西越来越多,这些都是基础啊,都忘得差不多了。
最近在弄sqlserver的复制,日志传送,镜像这些,说实话,也就是在本机按照步骤跑一遍,体验一下
这些东西以前也没真正应用过,还有alwayson环境还没搭建起来
另外,我觉得很多时候,知识太多了,你不可能什么都学,最关键的是很多东西学了,往往不容易记住。
对这个权限管理,其实在之前也没怎么用过,概念也有点模糊,但是你提的问题,我看了,觉得很有实际的意义,于是我就查了一些资料,在回答问题的同时,我自己也在整理自己的对这个权限方面的想法。
所以,我自己也学到不少,呵呵,是大家相互学习了
另外,我觉得很多时候,知识太多了,你不可能什么都学,最关键的是很多东西学了,往往不容易记住。
对这个权限管理,其实在之前也没怎么用过,概念也有点模糊,但是你提的问题,我看了,觉得很有实际的意义,于是我就查了一些资料,在回答问题的同时,我自己也在整理自己的对这个权限方面的想法。
所以,我自己也学到不少,呵呵,是大家相互学习了
是啊,深有感触,很多东西是学习+实践才能巩固,有些东西,当时学习学习,会用了,
放一段时间不用,又生疏了
熟能生巧,巧能生精需要一个不断巩固的过程,最怕就是不是专门搞那一行的,一会搞这个,一会搞那个
当时“弄会”了过一段时间又生疏了,
所以我感觉做东西要有一个专业化的程度,
因为不是专业做这个的,这也是我现在最尴尬的情况
你对一个东西的热爱决定了你的成就,如果你是天天在骂sqlserver如何烂,和oracle相比如何如何差,你不可能在sqlserver上面取得什么成绩,相反,总有一天你会成就你的梦想。
你对一个东西的热爱决定了你的成就,如果你是天天在骂sqlserver如何烂,和oracle相比如何如何差,你不可能在sqlserver上面取得什么成绩,相反,总有一天你会成就你的梦想。
我就是在想,针对一些现实中的应用场景,如果切换到sqlserver下,该如何实现,或者说是规划
本来也没做过,想到的就是很浅层次的问题
其实,你的学习环境挺好的。
当然,你肯定还需要做很多日常的其他的工作,不可能有那么多的时间都放到数据库上,不过这个环境真的很好,不仅自然环境不错,也是很好的学习环境,很羡慕你啊,要是我有这么好的环境就好了。
好好学,加油。
其实,你的学习环境挺好的。
当然,你肯定还需要做很多日常的其他的工作,不可能有那么多的时间都放到数据库上,不过这个环境真的很好,不仅自然环境不错,也是很好的学习环境,很羡慕你啊,要是我有这么好的环境就好了。
好好学,加油。
自由支配的时间有,但是不多,工作还是占据着绝大部分时间的
今年计划闪人,也就是计划,但是还没有完全决定下来
以前上班每天一来回要3.5个小时,吃小餐馆的地沟油
有时候想想也是,
为啥要为了多出来那二千三千块钱去早起挤地铁,赶公交,呼汽车尾气,吃地沟油,给别人买房(租房不是给别人买房么,呵呵)
一个月多挣三五千块钱不还是那个鸟样,看看那些买了房的,也是累的跟狗一样
人生就像打电话,早晚都要挂的,谁先挂还不一定呢
呵呵,扯远了
很多时候容易冲动,思考了很久,总结了很多,
不是说你拼命做事情,
人家就会看到,或者说人家就会认可,
想到的解决办法
说文明点,凡事看淡一点,不用太认真
说实诚点,吃过亏还不会去学的油条一点,活该
结贴
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。