這裡蒐索程式師資訊,查找有用的技術資料
当前位置:首页 » 编程语言 » sql安全角色权限
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql安全角色权限

发布时间: 2022-04-20 01:24:23

❶ 在sql中怎么为数据库角色设置权限呢

GRANT -- 定义访问权限
【语法】
GRANT { { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER }
[,...] | ALL [ PRIVILEGES ] }
ON [ TABLE ] tablename [, ...]
TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { { CREATE | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] }
ON DATABASE dbname [, ...]
TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { EXECUTE | ALL [ PRIVILEGES ] }
ON FUNCTION funcname ([type, ...]) [, ...]
TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { USAGE | ALL [ PRIVILEGES ] }
ON LANGUAGE langname [, ...]
TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] }
ON SCHEMA schemaname [, ...]
TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { CREATE | ALL [ PRIVILEGES ] }
ON TABLESPACE tablespacename [, ...]
TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]

【例子】
把表 films 的插入权限赋予所有用户:

GRANT INSERT ON films TO PUBLIC;

赋予用户manuel对视图kinds的所有权限:

GRANT ALL PRIVILEGES ON kinds TO manuel;
请注意,如果上面的命令由超级用户或者 kinds 的所有者执行,那么它实际上会赋予所有权限, 如果由其他人执行,那么它会赋予这个“其他人”拥有授权选项的所有权限。
收回授权 搜索 Revoke!

❷ SQL中使用哪些语句实现权限的授予和回收

1、把查询STUDENT表的权限授给用户UI:

GRANT SELECT

ON TABLE student

TO UI;

GRANT SELECT

ON TABLE student

TO PUBLIC

WITH GRANT OPTION;


2、收回权限:

REVOKE SELECT

ON TABLE SC

FROM PUBLIC;

数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。

CREATE ROLE jue;

GRANT SELECT,UPDATE,INSERT

ON TABLE Student

TO RI;

GRANT RI TO 王平;

REVOKE RI FROM 王平;

(2)sql安全角色权限扩展阅读:

SQL Server用户权限包含了对象权限和语句权限这两种类型。

用户在登录到SQL Server 之后,其安全账号(用户账号)所归属的NT 组或角色所被授予的权限决定了该用户能够对哪些数据库对象执行哪种操作以及能够访问、修改哪些数据。在SQL Server 中包括两种类型的权限,即对象权限和语句权限。

❸ SQL 中角色权限授予问题

语法:
sp_addrolemember[@rolename=]'role',
[@membername=]'security_account'

参数:[@rolename=]'role'
当前数据库中SQLServer角色的名称。role的数据类型为sysname,没有默认值。
[@membername=]'security_account'
添加到角色的安全帐户。security_account的数据类型为sysname,没有默认值。security_account可以是所有有效的SQLServer用户、SQLServer角色或是所有已授权访问当前数据库的MicrosoftWindowsNT®用户或组。

❹ 怎么设置SQL数据库用户权限

--SQLServer:

一、操作步骤

  1. 首先进入数据库级别的【安全性】-【登录名】-【新建登录名】


    (图11:其它对象类型)

    ❺ 如何为SQL Server中创建的角色分配权限

    --创建一个简单的登录,登录名为:newlogin;登录密码:123456;默认数据库:master,默认数据库也可以不指定。
    EXEC sp_addlogin 'newlogin','123456','master'
    --创建用户
    --创建一个简单的用户,如果不指定用户名,则添加到当前数据库登录名中,如果不指定角色,则该用户默认属于public角色。下为添加newlogin登录名。
    EXEC sp_adser 'newlogin'
    --创建一个带用户名的用户,用户可以与登录名相同(同上一种类似),也可以不同,但要设定当前登录名,用户角色可选,默认为public。下为将用户newuser添加到newlogin登录名中。
    EXEC sp_adser 'newlogin','newuser'
    --创建角色
    EXEC sp_addrole 'newrole'
    --下为将用户下为将用户newuser添加到newlogin登录名中。并指定newrole角色。
    EXEC sp_adser 'newlogin','newuser','newrole'
    --为角色newrole赋予jobs表的所有权限
    GRANT ALL ON jobs TO newrole
    --为角色newrole赋予sales表的查、改权限
    GRANT SELECT,UPDATE ON sales TO newrole
    --禁止角色newrole使用employees表的插入权限
    DENY INSERT ON employees TO newrole

    另一种创建用户和赋予角色的方式
    --为登录newlogin在数据库中添加安全账户newuser
    EXEC sp_grantdbaccess 'newlogin','newuser'
    --添加newuser为角色newrole的成员
    EXEC sp_addrolemember 'newrole','newuser'

    --数据库用户、角色、登录的删除操作
    --删除当前数据库用户
    EXEC sp_revokedbaccess 'newuser';
    --删除数据库登录
    EXEC sp_droplogin 'newlogin'
    --删除数据库角色
    EXEC sp_droprole 'newrole'
    --从数据库角色(newrole)中删除用户(newuser)
    EXEC sp_droprolemember 'newrole', 'newuser'
    --用SQL代码新建登录、用户
    --创建带密码的mylogin登录名,MUST_CHANGE 选项需要用户首次连接服务器时更改此密码。
    CREATE LOGIN mylogin WITH PASSWORD = '123456' MUST_CHANGE;
    --创建映射到凭据的登录名。
    --以下示例将创建mylogin登录名。此登录名将映射到mycredential凭据。
    CREATE LOGIN mylogin WITH PASSWORD = '123456',
    CREDENTIAL = mycredential;
    --从Windows 域帐户创建登录名
    --如果从Windows 域帐户映射登录名,则登录名必须用方括号([ ]) 括起来。
    CREATE LOGIN [jack\xiangzhao] FROM WINDOWS;
    --如果指定用户名,则不使用默认登录名作为该数据库用户
    CREATE USER myuser FOR LOGIN mylogin
    --以下示例将创建用户myuser拥有的数据库角色myrole
    CREATE ROLE myrole AUTHORIZATION myuser;
    --以下示例将创建db_role固定数据库角色拥有的数据库角色myrole
    CREATE ROLE myrole AUTHORIZATION db_role

    ❻ sql数据库安全中的权限问题

    一般来说,系统的权限和权限之间是“或”的关系。即是,一个有,则有。

    但是不知道你的具体是什么数据库,另外角色A和觉得B之间有没有优先级的关系。
    但是这种权限冲突的情况,建议楼主少用,因为本身从物理逻辑上这两个角色就是矛盾的。而且不光对你自己、对其他组员也都不是一个美好的东西。

    ❼ SQL sever中 什么是权限和角色,分别说出一下。

    --什么是角色?

    例如,一个公司可能成立慈善活动委员会,其中包括来自不同部门,来自组织中各种不同级别的职员。这些职员需要访问数据库中特殊的项目表。没有只包括这些职员的现有 Windows NT 4.0 或 Windows 2000 组,而且没有其它理由在 Windows NT 4.0 或 Windows 2000 中创建这样一个组。可以为此项目创建一个自定义 SQL Server 数据库角色 CharityEvent,并将个别的 Windows NT 和 Windows 2000 用户添加到此数据库角色。当应用权限后,数据库角色中的用户便获得对表的访问权限。其它数据库活动的权限不受影响,只有 CharityEvent 用户可以使用该项目表。

    SQL Server 角色存在于一个数据库中,不能跨多个数据库。

    使用数据库角色的好处包括:

    1.对于任何用户,都可以随时让多个数据库角色处于活动状态.如果所有用户、组和角色都在当前数据库中,则 SQL Server 角色可以包含 Windows NT 4.0 或 Windows 2000 组和用户,以及 SQL Server用户和其它角色。

    2.在同一数据库中,一个用户可属于多个角色。

    3.提供了可伸缩模型以便在数据库中设置正确的安全级别。

    说明:数据库角色要么在创建角色时由明确指定为所有者的用户所拥有,要么在未指定所有者时为创建角色的用户所拥有。角色的所有者决定可以在角色中添加或删除谁。但是,因为角色不是数据库对象,不能在同一数据库中创建由不同用户所拥有的多个同名角色。

    权限--
    是指为了保证职责的有效履行,任职者必须具备的,对某事项进行决策的范围和程度。它常常用“具有批准……事项的权限”来进行表达。例如,具有批准预算外5000元以内的礼品费支出的权限。

    ❽ SQL数据库的角色的定义,分类及角色的权限分配操作

    角色是一个强大的工具,使您得以将用户集中到一个单元中,然后对该单元应用权限。对一个角色授予、拒绝或废除的权限也适用于该角色的任何成员。可以建立一个角色来代表单位中一类工作人员所执行的工作,然后给这个角色授予适当的权限。当工作人员开始工作时,只须将他们添加为该角色成员,当他们离开工作时,将他们从该角色中删除。而不必在每个人接受或离开工作时,反复授予、拒绝和废除其权限。权限在用户成为角色成员时自动生效。

    Microsoft® Windows NT® 和 Windows® 2000 组的使用方式与角色很相似。有关更多信息,请参见组。

    如果根据工作职能定义了一系列角色,并给每个角色指派了适合这项工作的权限,则很容易在数据库中管理这些权限。之后,不用管理各个用户的权限,而只须在角色之间移动用户即可。如果工作职能发生改变,则只须更改一次角色的权限,并使更改自动应用于角色的所有成员,操作比较容易。

    在 Microsoft® SQL Server™ 2000 和 SQL Server 7.0 版中,用户可属于多个角色。

    以下脚本说明登录、用户和角色的添加,并为角色授予权限。

    USE master

    GO

    sp_grantlogin 'NETDOMAIN\John'

    GO

    sp_defaultdb 'NETDOMAIN\John', 'courses'

    GO

    sp_grantlogin 'NETDOMAIN\Sarah'

    GO

    sp_defaultdb 'NETDOMAIN\Sarah', 'courses'

    GO

    sp_grantlogin 'NETDOMAIN\Betty'

    GO

    sp_defaultdb 'NETDOMAIN\Betty', 'courses'

    GO

    sp_grantlogin 'NETDOMAIN\Ralph'

    GO

    sp_defaultdb 'NETDOMAIN\Ralph', 'courses'

    GO

    sp_grantlogin 'NETDOMAIN\Diane'

    GO

    sp_defaultdb 'NETDOMAIN\Diane', 'courses'

    GO

    USE courses

    GO

    sp_grantdbaccess 'NETDOMAIN\John'

    GO

    sp_grantdbaccess 'NETDOMAIN\Sarah'

    GO

    sp_grantdbaccess 'NETDOMAIN\Betty'

    GO

    sp_grantdbaccess 'NETDOMAIN\Ralph'

    GO

    sp_grantdbaccess 'NETDOMAIN\Diane'

    GO

    sp_addrole 'Professor'

    GO

    sp_addrole 'Student'

    GO

    sp_addrolemember 'Professor', 'NETDOMAIN\John'

    GO

    sp_addrolemember 'Professor', 'NETDOMAIN\Sarah'

    GO

    sp_addrolemember 'Professor', 'NETDOMAIN\Diane'

    GO

    sp_addrolemember 'Student', 'NETDOMAIN\Betty'

    GO

    sp_addrolemember 'Student', 'NETDOMAIN\Ralph'

    GO

    sp_addrolemember 'Student', 'NETDOMAIN\Diane'

    GO

    GRANT SELECT ON StudentGradeView TO Student

    GO

    GRANT SELECT, UPDATE ON ProfessorGradeView TO Professor

    GO

    该脚本给 John 和 Sarah 教授提供了更新学生成绩的权限,而学生 Betty 和 Ralph 只能选择他们自己的成绩。Diane 因同时教两个班,所以添加到两个角色中。ProfessorGradeView 视图应将教授限制在自己班学生的行上,而 StudentGradeView 应限制学生只能选择自己的成绩。

    SQL Server 2000 和 SQL Server 7.0 版在安装过程中定义几个固定角色。可以在这些角色中添加用户以获得相关的管理权限。下面是服务器范围内的角色。

    固定服务器角色
    描述

    sysadmin
    可以在 SQL Server 中执行任何活动。

    serveradmin
    可以设置服务器范围的配置选项,关闭服务器。

    setupadmin
    可以管理链接服务器和启动过程。

    securityadmin
    可以管理登录和 CREATE DATABASE 权限,还可以读取错误日志和更改密码。

    processadmin
    可以管理在 SQL Server 中运行的进程。

    dbcreator
    可以创建、更改和除去数据库。

    diskadmin
    可以管理磁盘文件。

    bulkadmin
    可以执行 BULK INSERT 语句。

    可以从 sp_helpsrvrole 获得固定服务器角色的列表,可以从 sp_srvrolepermission 获得每个角色的特定权限。

    每个数据库都有一系列固定数据库角色。虽然每个数据库中都存在名称相同的角色,但各个角色的作用域只是在特定的数据库内。例如,如果 Database1 和 Database2 中都有叫 UserX 的用户 ID,将 Database1 中的 UserX 添加到 Database1 的 db_owner 固定数据库角色中,对 Database2 中的 UserX 是否是 Database2 的 db_owner 角色成员没有任何影响。

    固定数据库角色
    描述

    db_owner
    在数据库中有全部权限。

    db_accessadmin
    可以添加或删除用户 ID。

    db_securityadmin
    可以管理全部权限、对象所有权、角色和角色成员资格。

    db_ddladmin
    可以发出 ALL DDL,但不能发出 GRANT、REVOKE 或 DENY 语句。

    db_backupoperator
    可以发出 DBCC、CHECKPOINT 和 BACKUP 语句。

    db_datareader
    可以选择数据库内任何用户表中的所有数据。

    db_datawriter
    可以更改数据库内任何用户表中的所有数据。

    db_denydatareader
    不能选择数据库内任何用户表中的任何数据。

    db_denydatawriter
    不能更改数据库内任何用户表中的任何数据。

    可以从 sp_helpdbfixedrole 获得固定数据库角色的列表,可以从 sp_dbfixedrolepermission 获得每个角色的特定权限。

    数据库中的每个用户都属于 public 数据库角色。如果想让数据库中的每个用户都能有某个特定的权限,则将该权限指派给 public 角色。如果没有给用户专门授予对某个对象的权限,他们就使用指派给 public 角色的权限。

    ❾ SQL2005中怎样把使用一个角色的权限授予给一个用户

    1. SQL数据库分配权限
    打开SQL-Server管理工具安全性登陆名右键(新建登陆名)

    输入相应的信息(这里要去掉强制实施密码策略,强制密码过期,用户在下次登录时必须修改密码的选择)

    用户映射选择我们要设置权限的数据库通过选择数据库角色成员身份来设置新建用户的权限

    一般对整个库做权限的时候都是需要所有权限勾选db_owner就可以了(确定)
    这样就可以用我们新建的这个用户名来访问我们的数据库服务器了,而且这个用户名只拥有我们所勾选的数据库的所有权限。

    2. SQL数据库对每个表分配权限

    打开SQL-Server管理工具安全性登陆名右键(新建登陆名)

    输入相应的信息(这里要去掉强制实施密码策略,强制密码过期,用户在下次登录时必须修改密码的选择)

    用户映射选择我们要设置权限的数据库通过选择数据库角色成员身份来设置新建用户的权限

    因为我们要对每个表进行单独的设置所以这里我们就不勾选db_owner了

    打开我们刚才勾选的test数据库安全性用户中看到我们刚才新建的那个用户了。

    找到新建的用户名右键属性

    安全对像

    添加

    特定类型的所有对象确定

    对象类型选择表

    确定这样我们就能看到test数据库中的所有表了

    接着我们再对每个表设置权限

    我对两个表都是设置的Select权限确定这样我们用test_name登陆test数据库的时候只能对其中的两个表做Select操作不能做其它操作