数据库开发面试题(9)
发布时间:2021-06-05
发布时间:2021-06-05
只有给用户赋予角色,该用户才有相应的操作数据库的权限 如将public/db_owner角色赋给sa,则该用户有对数据库进行一切操作的权限
角色:完成特定的、与服务器相关的管理任务所需的权限,一个用户可以属于多个角色。 登录:仅能使您连接到 SQL Server 实例。
命题官的理解:
登录是sql实例级的?
用户是数据库级的?
角色有实例级和数据库级两种?
登录决定你是否能访问sql实例?
用户与登录对应, 确实某个登录后, 它对那些数据库有那些权限.
角色是为了方便管理一类登录或者用户所具有的权限, 当某一类登录或者用户具有相同的权限时, 可以简单地给予他们对应的角色即可.?
做个形象的比喻:?
sql实例就相当于一个公司.
如果你要在公司工作自然就要成为公司的员工, 因此公司的员工就相当于登录公司有不同的部门, 这相当于数据库, 你要在某个部门做事, 必须把你分配到某个部门, 也就是在部门的名单中要有你, 这个部门的名单就相当于用户. 名单必须对应公司的某个员工.但你一个人是可以在多个部门工作的软件开发网,因此, 一个登录可以对应多个数据库的不同用户. 同样, 一个员工在一个部门的名单中只可能出现一次。 因此, 一个登录在同一数据库中, 只可能对应一个用户。为了方便定义每个员工应该做些什么, 应该承担什么职责, 公司会定义职位, 我个职位对应的, 在数据库中就叫角色.?
因为有的职位是公司层面的, 比如懂事长, 他什么都可以管 软件开发网
因此, 有sql实例级的角色
也可以具体地为每个部位定义职位, 不同部门的同一名称的职位它的具体内容可以不同. 因此,对应于sql而言, 它又有数据库级的角色。某个员工是某个职位, 则具有该职位对应的权限与责任
因此, 对于sql而言, 某个登录或者用户被授予某个或者某些角色, 它就具有对应的权限. 不同职位, 在不同时期, 可以由不人担任, 换人只需要取消和授予对应人员的职位就可以了. 不用改职位定义.
因此, 对于sql而言, 可以根据需要取消和授予某个登录或者用户的角色.?
(这是管理方便性需要, 你完全可以不理会角色, 自己为用户或者登录指定权限)
oracle、sqlserver数据库dba面试题集(2)
一、Transact-SQL问题:
1 有订单表SO_Table,单号字段RefNo VARCHAR(10),需要实现自动编号,格式为YYYYMMXXXX,其中XXXX为序号, 如:2004050001,2004050002 2004059999等,采用Transact-SQL实现新订单编号的思路。
2 有表T1,T2,现有一事务,在向表T1添加数据时,同时也必须向T2也添加数据,如何确何数据的完整性。
3 如何求表中相邻(按聚集索引相邻)的两条记录的某字段的值之差,用Transact-SQL语句或存储过程。
4 如何删除表中的重复数据,用Transact-SQL写出代码。
5 基于MS-SQLSERVER 2000,如何统计数据库中所有用户表的数据,显示格式如下: 表名??????? 记录数
sales??????? 23