如何在sql server中新建数据库用户账户
22 登录名
221 登录名
登录名是服务器级别的一个实体,用于登录到 SQL Server 实例。登录名的元数据保存在 master 数据库的 syslogins 表。
登录名包括以下2类:
(1) Windows 登录
SQL Server 将为 Windows 帐户创建一个 SID。客户端在登录 SQL Server 时使用的是 SQL Server 的登录名,而不是 Windows 帐户。当使用集成身份验证时,SQL Server 会自动查询当前实例中是否存在对应的登录名,验证通过后才完成连接。
(2) SQL 登录
如果 SQL Server 实例处于混合身份验证模式,那么可以创建当前实例自有的登录名。
222 新建 Windows 登录
在 SSMS 中展开“安全性”、“登录名”。在右键菜单中选择“新建登录名”。
默认的新建登录名是基于 Windows 身份验证。单击“登录名”文本框右侧的“搜索”按钮,搜索一个用户或组。
在“选择用户或组”对话窗口,默认的“对象类型”只有“内置安全主体”和“用户”两类。可以单击“对象类型”按钮并需要添加“组”类型。
可以单击“位置”按钮,从而在本地计算机或域(以及受信任的域)中进行搜索 Windows 对象。
在“输入要选择的对象名称”文本框中输入一个 Windows 对象名称。建议单击“检查名称”按钮,检查对象名称是否存在。如果同时有多个对象的名称都匹配了输入的字符,则需要从弹出的选择窗口中选择其中的一个对象。
T-SQL 语句示例如下:
USE [master]
GO
CREATE LOGIN [SQLSVR2014\LocalSqlUser] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
GO
最佳实践:
对于域帐户,建议从域级别使用 AGDLP 策略可简化帐户管理。即使用 Windows 身份验证,在域级别创建 Windows 组(全局组、域本地组),然后在 SQL Server 上为整个组创建登录名。
223 新建 SQL 登录
如果新建的登录名是基本 SQL Server 身份验证,需要为新的登录名设置新的密码,同时为其指定密码策略。
密码策略有3个选项:
(1)强制实施密码策略
对 SQL Server 登录名强制实施计算机的 Windows 密码策略。这包括密码长度和密码复杂性。此功能仅在 Windows Server 2003 和更高版本中提供。在数据库实例所在的计算机打开“管理工具”中的“本地安全策略”,依次展开“安全设置”“帐户策略”,然后单击“密码策略”,密码策略将在结果窗格中所示。
如果取消了“强制实施密码策略”,则“强制密码过期”和“用户在下次登录时必须更改密码”选项都不可用。
(2)强制密码过期
对 SQL Server 登录名强制实施计算机的密码最长使用期限策略。
(3)用户在下次登录时必须更改密码
要求用户在下次连接时更改密码。更改密码的功能由 SSMS 提供。如果启用了“用户在下次登录时必须更改密码”选项,则第三方软件开发人员应提供此功能。
新建 SQL 登录名的 T-SQL 语句示例如下:
USE [master]
GO
CREATE LOGIN [SqlUser1] WITH PASSWORD=N'Password123' MUST_CHANGE, DEFAULT_DATABASE=[master], CHECK_EXPIRATION=ON, CHECK_POLICY=ON
GO
224 修改密码
对于 SQL 登录名,可以在 SSMS 中重置密码。
T-SQL 语句示例如下:
USE [master]
GO
Alter Login [sa] with password='newpassword'
GO
如果指定旧密码,T-SQL 语句示例如下:
USE [master]
GO
Alter Login [sa] with password='newpassword' old_password='oldpassword'
GO
可以使用 HASHED 参数加密密码字符。
ALTER LOGIN [SqlUser1] WITH
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO
提示:
不推荐执行 sp_password 存储过程修改密码。
225 修改登录名的状态
状态包括了两类设置:是否允许连接到数据库引擎;是否已启用登录。
如果在安装过程中选择 Windows 身份验证,则安装程序仍然会为 SQL Server 身份验证创建 sa 帐户,但会禁用该帐户。如果稍后更改为混合模式身份验证,则 sa 登录名仍处于禁用状态。如果需要使用 sa 帐户,则必须启用 sa 登录名并分配一个新密码。
USE [master]
GO
ALTER LOGIN [sa] WITH PASSWORD = 'Password123'
GO
ALTER LOGIN [sa] ENABLE
GO
提示:
由于 sa 帐户广为人知且经常成为恶意用户的攻击目标,因此除非应用程序需要使用 sa 帐户,否则请勿启用该帐户。切勿为 sa 帐户设置空密码或弱密码。
226 解锁登录名
如果为SQL 登录名启用了“强制密码策略”,可能会在某些场景中被锁住该登录名导致无法登录。
可以为该登录名在重设密码后再解锁。
ALTER LOGIN [SqlUser1] WITH PASSWORD = 'P@ssw0rd' UNLOCK ;
GO
如果不需要更改密码,则可以通过关闭密码策略并再次打开的方法解锁该登录名。
ALTER LOGIN [SqlUser1] WITH CHECK_POLICY = OFF;
ALTER LOGIN [SqlUser1] WITH CHECK_POLICY = ON;
GO
227 删除登录名
在 SSMS 中可以直接删除某个登录名。在删除之前,请确保该登录名当前没有登录到数据库引擎,否则删除登录名失败。
T-SQL 语句示例如下:
USE [master]
GO
DROP LOGIN [SqlUser1]
GO
24 数据库用户
241 数据库用户
用户是数据库级别的安全主体,用于对数据库对象进行授权。
登录名仅用于登录到 SQL Server 实例,用户则是一个或多个登录名在数据库中的映射以便为登录名提供对数据库的访问。创建登录名时会默认将其映射为数据库的用户。
在安装 SQL Server 后,数据库有以下4个默认的用户,不可以修改或删除这些默认的用户。
(1) dbo
通常 sa 登录名、sysadmin 角色的成员、数据库的拥有者被映射为 dbo 用户。
(2) guest
数据库的 guest 用户默认为 public 服务器角色。仅允许登录到 SQL Server 实例,但不能访问数据库。这个用户类似于 Windows 的 everyone 帐户。在用户数据库中,默认被禁用。如果为其授予 CONNECT 权限,则可以启用 guest 用户。
(3) INFORMATION_SCHEMA
在用户数据库中,默认被禁用。
(4) sys
在用户数据库中,默认被禁用。
242 基于登录名的用户
最常见的用户是基于 master 数据库中登录名的用户,有以下一些具体的类型。
(1)基于 Windows 用户的登录名的用户。
(2)基于 Windows 组的登录名的用户。
(3)基于 Windows 组成员的登录名的用户。这类 Windows 主体可以没有登录名,但可以通过 Windows 组(包括嵌套的组)中的成员身份连接到数据库引擎。
(4)基于使用 SQL Server 身份验证的登录名的用户。
通过 SSMS 可以创建“Windows 用户”(必须带登录名)或者“带登录名的 SQL 用户”。
T-SQL 语法示例如下:
CREATE USER [Domain1\WindowsUser1]
CREATE USER [Domain1\WindowsUserBarry] FOR LOGIN Domain1\WindowsUser1
CREATE USER [Domain1\WindowsGroupManagers]
CREATE USER [Domain1\WindowsGroupManagers] FOR LOGIN [Domain1\WindowsGroupManagers]
CREATE USER SQLAUTHLOGIN1
CREATE USER SQLAUTHLOGIN1 FOR LOGIN SQLAUTHLOGIN1
CREATE USER 语句中, FOR 子句与 FROM 子句可以相互替代。以下语句具有相同的作用。
CREATE USER [Domain1\WindowsUser1] FOR LOGIN Domain1\WindowsUser1
CREATE USER [Domain1\WindowsUser1] FROM LOGIN Domain1\WindowsUser1
243 包含数据库的用户
SQL Server 2012 引入了包含数据库。在包含数据库中,可以直接在数据库级别进行身份验证(绕过服务器级别),而无需在服务器级别创建登录名。包括基于无登录名的 “Windows 用户”(或 Windows 组用户)、“带密码的 SQL 用户”。
T-SQL 语法示例如下:
CREATE USER [Domain1\WindowsUser1]
CREATE USER [Domain1\WindowsGroupManagers]
CREATE USER DbUser1 WITH PASSWORD = 'Password123'
在创建此类用户时,不仅授予用户对当前数据库的访问权限,并且还将授予对数据库引擎的新访问权限。但是在登录到数据库引擎时必须指定连接的数据库名称,否则登录失败。例如,在 SSMS 的“连接到服务器”对话窗口,必须单击“选项”按钮,然后在“连接属性”选项卡中为“连接到数据库”指定数据库名称。
sql server2005安全管理之用户、角色、架构 与 权限
2008-12-04 16:47
--打开数据库
Use databaseName
--创建角色
create role ProgramerRole
--用于创建表 存储过程 视图
grant create table,create procedure,create view to ProgramerRole
--execute用以执行存储过程,alter用以创建、修改存储过程和视图,
--并可以新建立表,但不能修改表,但也可以删除表和对表改名了
grant select,insert,execute,alter on schema::dbo to ProgramerRole
--用于允许用户查看 显示估计的执行计划(081205)
grant showplan to ProgramerRole
--创建登录账号
--create login username with password='password'
--创建数据库用户
create user username for login username
--将用户TestUser添加到TestRole角色中
exec sp_addrolemember 'ProgramerRole','username '
--执行Sql Server Profiler是服务器级权限,所以在master库中授权
USE master;grant alter trace to auto;
注:据库引擎优化顾问必须由具有系统管理员权限的用户进行初始化。在具有系统管理员权限的用户对数据库引擎优化顾问进行初始化之后,任何是 db_owner 固定数据库角色成员的用户,都可以使用数据库引擎优化顾问来优化他们拥有的数据库上的表。
详优化物理数据库设计http://msdnmicrosoftcom/zh-cn/library/ms191531(SQL90)aspx
参考资料:
用户架构分离:http://msdnmicrosoftcom/zh-cn/library/ms190387(SQL90)aspx
数据库架构是一个独立于数据库用户的非重复命名空间。您可以将架构视为对象的容器
主体:http://msdnmicrosoftcom/zh-cn/library/ms181127(SQL90)aspx
是可以请求 SQL Server 资源的实体
Windows 级别的主体
Windows 域登录名
Windows 本地登录名
SQL Server 级的主体
SQL Server 登录名
数据库级的主体
数据库用户
数据库角色
应用程序角色
安全对象:http://msdnmicrosoftcom/zh-cn/library/ms190401(SQL90)aspx
安全对象是 SQL Server 数据库引擎 授权系统控制对其进行访问的资源
安全对象范围有服务器、数据库和架构
安全对象范围:服务器包含以下安全对象:
端点
登录帐户
数据库
安全对象范围:数据库包含以下安全对象:
用户
角色
应用程序角色
程序集
消息类型
路由
服务
远程服务绑定
全文目录
证书
非对称密钥
对称密钥
约定
架构
安全对象范围:架构包含以下安全对象:
类型
XML 架构集合
对象
对象 下面是对象类的成员:
聚合
约束
函数
过程
队列
统计信息
同义词
表
视图
架构:http://msdnmicrosoftcom/zh-cn/library/ms365789(SQL90)aspx
架构是指包含表、视图、过程等的容器。它位于数据库内部,而数据库位于服务器内部
特定架构中的每个安全对象都必须有唯一的名称。架构中安全对象的完全指定名称包括此安全对象所在的架构的名称。因此,架构也是命名空间
权限:http://msdnmicrosoftcom/zh-cn/library/ms190387(SQL90)aspx
每个 SQL Server 2005 安全对象都有可以授予主体的关联权限
数据库级别的角色:http://msdnmicrosoftcom/zh-cn/library/ms189121(SQL90)aspx
固定数据库角色是在数据库级别定义的,并且存在于每个数据库中。db_owner 和 db_securityadmin 数据库角色的成员可以管理固定数据库角色成员身份;但是,只有 db_owner 数据库的成员可以向 db_owner 固定数据库角色中添加成员。
每个数据库用户都属于 public 数据库角色。当尚未对某个用户授予或拒绝对安全对象的特定权限时,则该用户将继承授予该安全对象的 public 角色的权限
服务器级别角色:http://msdnmicrosoftcom/zh-cn/library/ms188659(SQL90)aspx
固定服务器角色在其作用域内属于服务器范围。固定服务器角色的每个成员都可以向其所属角色添加其他登录名。
GRANT 架构权限:http://msdnmicrosoftcom/zh-cn/library/ms187940(SQL90)aspx
如何配置用户以创建和管理 SQL Server 代理作业 http://msdnmicrosoftcom/zh-cn/library/ms187901aspx
若要配置用户以创建或执行 Microsoft SQL Server 代理作业,必须先将某个现有 SQL Server 登录名或 msdb 角色添加到 msdb 数据库中的下列 SQL Server 代理固定数据库角色之一:SQLAgentUserRole、SQLAgentReaderRole 或 SQLAgentOperatorRole。
默认情况下,这些数据库角色的成员可以创建各自的作业步骤,这些作业步骤不执行其他作业步骤。如果这些非管理用户要运行那些执行其他作业步骤类型(例如,SSIS 包)的作业,它们需要对代理帐户具有访问权限。sysadmin 固定服务器角色的所有成员都有创建、修改和删除代理帐户的权限
为具体的用户设置具体的访问权限 收藏
use 你的库名
go
--新增用户
exec sp_addlogin 'test' --添加登录
exec sp_grantdbaccess N'test' --使其成为当前数据库的合法用户
exec sp_addrolemember N'db_owner', N'test' --授予对自己数据库的所有权限
--这样创建的用户就只能访问自己的数据库,及数据库中包含了guest用户的公共表
go
--删除测试用户
exec sp_revokedbaccess N'test' --移除对数据库的访问权限
exec sp_droplogin N'test' --删除登录
如果在企业管理器中创建的话,就用:
企业管理器--安全性--右键登录--新建登录
常规项
--名称中输入用户名
--身份验证方式根据你的需要选择(如果是使用windows身份验证,则要先在操作系统的用户中新建用户)
--默认设置中,选择你新建的用户要访问的数据库名
服务器角色项
这个里面不要选择任何东西
数据库访问项
勾选你创建的用户需要访问的数据库名
数据库角色中允许,勾选"public","db_ownew"
确定,这样建好的用户与上面语句建立的用户一样
---------------------------------------------------------------------------
最后一步,为具体的用户设置具体的访问权限,这个可以参考下面的最简示例:
--添加只允许访问指定表的用户:
exec sp_addlogin '用户名','密码','默认数据库名'
--添加到数据库
exec sp_grantdbaccess '用户名'
--分配整表权限
GRANT SELECT , INSERT , UPDATE , DELETE ON table1 TO [用户名]
--分配权限到具体的列
GRANT SELECT , UPDATE ON table1(id,AA) TO [用户名]
, securityadmingo--作好SQL的安全管理--作者:邹建首先,做好用户安全:--简单的,只允许sql的用户访问sql(防止利用administrator组用户访问)1企业管理器--右键SQL实例--属性--安全性--身份验证--选择"sql server和windows"--确定2企业管理器--安全性--登陆--右键sa--设置密码--其他用户也设置密码3删除用户:BUILTIN\Administrators<机器名\Administrator--这个用户不一定有这样可以防止用windows身份登陆SQL4设置进入企业管理器需要输入密码在企业管理器中--右键你的服务器实例(就是那个有绿色图标的)--编辑SQL Server注册属性--选择"使用 SQL Server 身份验证"--并勾选"总是提示输入登录名和密码"--确定--经过上面的设置,你的SQL Server基本上算是安全了------------------------------------------------------------------------其次,改默认端口,隐藏服务器,减少被攻击的可能性SQL Server服务器--开始--程序--Microsoft SQL Server--服务器网络实用工具--启用的协议中"TCP/IP"--属性--默认端口,输入一个自已定义的端口,比如2433--勾选隐藏服务器------------------------------------------------------------------------------管好sql的用户,防止访问他不该访问的数据库(总控制,明细还可以控制他对于某个数据库的具体对象具有的权限)--切换到你新增的用户要控制的数据库use你的库名go--新增用户execsp_addlogin'test'--添加登录execsp_grantdbaccess N'test'--使其成为当前数据库的合法用户execsp_addrolemember N'db_owner', N'test'--授予对自己数据库的所有权限--这样创建的用户就只能访问自己的数据库,及数据库中包含了guest用户的公共表go--删除测试用户execsp_revokedbaccess N'test'--移除对数据库的访问权限execsp_droplogin N'test'--删除登录如果在企业管理器中创建的话,就用:企业管理器--安全性--右键登录--新建登录常规项--名称中输入用户名--身份验证方式根据你的需要选择(如果是使用windows身份验证,则要先在操作系统的用户中新建用户)--默认设置中,选择你新建的用户要访问的数据库名服务器角色项这个里面不要选择任何东西数据库访问项勾选你创建的用户需要访问的数据库名数据库角色中允许,勾选"public","db_ownew"确定,这样建好的用户与上面语句建立的用户一样---------------------------------------------------------------------------最后一步,为具体的用户设置具体的访问权限,这个可以参考下面的最简示例:--添加只允许访问指定表的用户:execsp_addlogin'用户名','密码','默认数据库名'--添加到数据库execsp_grantdbaccess'用户名'--分配整表权限GRANTSELECT,INSERT,UPDATE,DELETEONtable1TO[用户名]--分配权限到具体的列GRANTSELECT,至于具体的安全设置和理论知道,参考SQL联机帮助
以下的文章主要向大家讲述的是正确查看SQL Server超级用户权限的实际操作步骤,在实际操作中sa 帐户在 SQL Server 数据库权利很大。其主要原因是因为 sa 属于 sysadmin 固定服务器角色。
普通 SQL Server 帐户,如果加入了 sysadmin 固定服务器角色,那么也会拥有和 sa 帐户一样的权利。
我们知道,sa 帐户在 SQL Server 中拥有至高无上的权利。归根结底在于 sa 属于 sysadmin 固定服务器角色。普通 SQL Server 帐户,如果加入了 sysadmin 固定服务器角色,那么也会拥有和 sa 帐户一样的权利。
查看自己是否具有SQL Server超级用户权限:
select is_srvrolemember('sysadmin')
如果返回值为 1,则有;0,没有。
SQL Server 系统存储过程 is_srvrolemember 语法:
is_srvrolemember ('role')
is_srvrolemember ('role', 'login')
把普通帐户加入到 sysadmin 角色:
exec sp_addsrvrolemember '普通帐户', 'sysadmin'
SQL Server 系统存储过程 sp_addsrvrolemember 语法:
sp_addsrvrolemember [ @loginame = ] 'login', [ @rolename = ] 'role'
以上的相关内容就是对查看SQL Server超级用户权限的介绍,望你能有所收获。
顾名思义!
服务器角色就是针对整个数据库服务器设定的角色和权限。
数据库角色就是针对某个特定数据库设定的角色和权限。
给你举个例子:
setupadmin
该角色仅限于管理链接服务器和启动过程。这个是针对整个服务器权限的角色。
db_datareader
能够在数据库中所有的用户表上执行SELECT语句,这个就是数据库角色,是针对特定某个数据库的权限设置,只对该特定数据库有效
角色是一个强大的工具,使您得以将用户集中到一个单元中,然后对该单元应用权限。对一个角色授予、拒绝或废除的权限也适用于该角色的任何成员。可以建立一个角色来代表单位中一类工作人员所执行的工作,然后给这个角色授予适当的权限。当工作人员开始工作时,只须将他们添加为该角色成员,当他们离开工作时,将他们从该角色中删除。而不必在每个人接受或离开工作时,反复授予、拒绝和废除其权限。权限在用户成为角色成员时自动生效。
Microsoft�0�3 Windows NT�0�3 和 Windows�0�3 2000 组的使用方式与角色很相似。有关更多信息,请参见组。
如果根据工作职能定义了一系列角色,并给每个角色指派了适合这项工作的权限,则很容易在数据库中管理这些权限。之后,不用管理各个用户的权限,而只须在角色之间移动用户即可。如果工作职能发生改变,则只须更改一次角色的权限,并使更改自动应用于角色的所有成员,操作比较容易。
在 Microsoft�0�3 SQL Server�6�4 2000 和 SQL Server 70 版中,用户可属于多个角色。
以下脚本说明登录、用户和角色的添加,并为角色授予权限。
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 70 版在安装过程中定义几个固定角色。可以在这些角色中添加用户以获得相关的管理权限。下面是服务器范围内的角色。
固定服务器角色
描述
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 角色的权限。
0条评论