当前位置:首页 » 操作系统 » 数据库创建角色

数据库创建角色

发布时间: 2023-01-25 20:41:05

sqlserver中的用户可以创建几种数据库角色

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 角色的权限。

❷ SQL数据库中 怎样建立用户角色

create table [用户] ([编号] varchar(10), [姓名] varchar(15), [角色] varchar(20));

alter table [用户] add constraint
CK_role check ([角色] in ('总经理','部门经理','财务总管'))

❸ sql 数据库中syadmin固定服务器怎么添加角色

数据库角色的成员可以分为如下几类:

Windows用户组或用户账户

SQL Server登录

其他角色

SQL Server的安全体系结构中包括了几个含有特定隐含权限的角色。除了数据库拥有者创建的角色之外,还有两类预定义的角色。这些可以创建的角色可以分为如下几类:

固定服务器

固定数据库

用户自定义

固定服务器

由于固定服务器是在服务器层次上定义的,因此它们位于从属于数据库服务器的数据库外面。下表列出了所有现有的固定服务器角色。

固定服务器角色

说 明

sysadmin

执行SQL Server中的任何动作

serveradmin

配置服务器设置

setupadmin

安装复制和管理扩展过程

securityadmin

管理登录和CREATE DATABASE的权限以及阅读审计

processadmin

管理SQL Server进程

dbcreator

创建和修改数据库

diskadmin

管理磁盘文件

下面两个系统过程用来添加或删除固定服务器角色成员:

sp_addsrvrolemember

sp_dropsrvrolemember

注意:您不能添加、修改或删除固定服务器角色。另外,只有固定服务器角色的成员才能执行上述两个系统过程来从角色中添加或删除登录账户。

sa登录

sa登录是系统管理员的登录。在以前的SQL Server版本中不存在角色,sa登录具有所有可能的关于系统管理工作的权限。在SQL Server 2005中,sa登录保持了向后兼容性。sa登录永远是固定服务器角色syadmin中的成员,并且不能从该角色中删除。

注意:只有当没有其他方法登录到SQL Server系统中时,再使用sa登录。

固定服务器角色及其权限

在某个SQL Server系统中,每个固定服务器角色都有其隐含的权限。使用系统过程sp_srvrolepermission可以浏览每个固定服务器角色的权限。该系统过程的语法形式为:

sp_srvrolepermission[[@srvrolename =] 'role']

如果没有指定role的值,那么所有的固定服务器角色的权限都将显示出来。下面的部分将讨论每个固定服务器角色的权限。

1. sysadmin

固定服务器角色sysadmin的成员被赋予了SQL Server系统中所有可能的权限。例如,只有这个角色中的成员(或一个被这个角色中的成员赋予了CREATE DATABASE权限的用户)才能够创建数据库。

固定服务器角色和sa登录之间有着特殊的关系。sa登录一直都是固定服务器角色中的成员,并且不能从该角色中删除。

2. serveradmin

固定服务器角色serveradmin的成员可以执行如下的动作:

向该服务器角色中添加其他登录

运行dbcc pintable命令(从而使表常驻于主内存中)

运行系统过程sp_configure(以显示或更改系统选项)

运行reconfigure选项(以更新系统过程sp_configure所做的所有改动)

使用shutdown命令关掉数据库服务器

运行系统过程sp_tableoption为用户自定义表设置选项的值

3. setupadmin

固定服务器角色setupadmin中的成员可以执行如下的动作:

向该服务器角色中添加其他登录

添加、删除或配置链接的服务器

执行一些系统过程,如sp_serveroption

4. securityadmin

固定服务器角色securitypadmin中的成员可以执行关于服务器访问和安全的所有动作。这些成员可以进行如下的系统动作:

向该服务器角色中添加其他登录

读取SQL Server的错误日志

运行如下的系统过程:如sp_addlinkedsrvlogin、sp_addlogin、sp_defaultdb、sp_defaultlanguage、sp_denylogin、sp_droplinkedsrvlogin、sp_droplogin、sp_grantlogin、sp_helplogins、sp_remoteoption和sp_revokelogin(所有这些系统过程都与系统安全相关。)

5. processadmin

固定服务器角色processadmin中的成员用来管理SQL Server进程,如中止用户正在运行的查询。这些成员可以进行如下的动作:

向该服务器角色中添加其他登录

执行KILL命令(以取消用户进程)

6. dbcreator

固定服务器角色dbcreator中的成员用来管理与数据库创建和修改有关的所有动作。这些成员可以进行如下的动作:

向该服务器角色中添加其他登录

运行CREATE DATABASE和ALTER DATABASE语句

使用系统过程sp_renamedb来修改数据库的名称

7. diskadmin

固定服务器角色diskadmin的成员可以进行如下与用来存储数据库对象的文件和文件组有关的动作:

向该服务器角色中添加其他登录

运行如下系统过程:sp_dmpdevice和sp_dropdevice。

运行DISK INIT语句

固定数据库角色

固定数据库角色在数据库层上进行定义,因此它们存在于属于数据库服务器的每个数据库中。下表列出了所有的固定数据库角色。

固定数据库角色

说 明

db_owner

可以执行数据库中技术所有动作的用户

db_accessadmin

可以添加、删除用户的用户

db_datareader

可以查看所有数据库中用户表内数据的用户

db_datawriter

可以添加、修改或删除所有数据库中用户表内数据的用户

db_ddladmin

可以在数据库中执行所有DDL操作的用户

db_securityadmin

可以管理数据库中与安全权限有关所有动作的用户

db_backoperator

可以备份数据库的用户(并可以发布DBCC和CHECKPOINT语句,这两个语句一般在备份前都会被执行)

db_denydatareader

不能看到数据库中任何数据的用户

db_denydatawriter

不能改变数据库中任何数据的用户

除了上表中列出的固定数据库角色之外,还有一种特殊的固定数据库角色,名为public,这里将首先介绍这一角色。

public角色

public角色是一种特殊的固定数据库角色,数据库的每个合法用户都属于该角色。它为数据库中的用户提供了所有默认权限。这样就提供了一种机制,即给予那些没有适当权限的所有用户以一定的(通常是有限的)权限。public角色为数据库中的所有用户都保留了默认的权限,因此是不能被删除的。

一般情况下,public角色允许用户进行如下的操作:

使用某些系统过程查看并显示master数据库中的信息

执行一些不需要一些权限的语句(例如PRINT)

固定数据库角色及其权限

在数据库中,每个固定数据库角色都有其特定的权限。这就意味着对于某个数据库来说,固定数据库角色的成员的权限是有限的。使用系统过程sp_dbfixedrolepermission就可以查看每个固定数据库角色的权限。该系统过程的语法为:

sp_db.xedrolepermission [[@rolename =] 'role']

如果没有指定role的值,那么所有固定数据库角色的权限都可以显示出来。下面的几节将讨论每个固定数据库角色的权限。

1. db_owner

固定数据库角色db_owner的成员可以在特定的数据库中进行如下的动作:

向其他固定数据库角色中添加成员,或从其中删除成员

运行所有的DDL语句

运行BACKUP DATABASE和BACKUP LOG语句

使用CHECKPOINT语句显式地启动检查点进程

运行下列dbcc命令:dbcc checkalloc、dbcc checkcatalog、dbcc checkdb、dbcc updateusage

授予、取消或剥夺每一个数据库对象上的下列权限:SELECT、INSERT、UPDATE、DELETE和REFERENCES

使用下列系统过程向数据库中添加用户或角色:sp_addapprole、sp_addrole、sp_addrolemember、sp_approlepassword、sp_changeobjectowner、sp_dropapprole、sp_droprole、sp_droprolemember、sp_dropuser、sp_grantdbaccess

使用系统过程sp_rename为任何数据库对象重新命名

2. db_accessadmin

固定数据库角色db_accessadmin的成员可以执行与数据库访问有关的所有动作。这些角色可以在具体的数据库中执行下列操作:

运行下列系统过程:sp_addalias、sp_dropalias、sp_dropuser、sp_grantdbacess、sp_revokedbaccess

为Windows用户账户、Windows组和SQL Server登录添加或删除访问

3. dbdatareader

固定数据库角色dbdatareader的成员对数据库中的数据库对象(表或视图)具有SELECT权限。然而,这些成员不能把这个权限授予其他任何用户或角色。(这个限制对REVOKE语句来说同样成立。)

4. dbdatawriter

固定数据库角色dbdatawriter的成员对数据库中的数据库对象(表或视图)具有INSERT、UPDATE和DELETE权限。然而,这些成员不能把这个权限授予其他任何用户或角色。(这个限制对REVOKE语句来说也同样成立。)

5. db_ddladmin

固定数据库角色db_ddladmin的成员可以进行如下的动作:

运行所有DDL语句

对任何表上授予REFERENCESE权限

使用系统过程sp_procoption和sp_recompile来修改任何存储过程的结构

使用系统过程sp_rename为任何数据库对象重命名

使用系统过程sp_tableoption和sp_changeobjectowner分别修改表的选项和任何数据库对象的拥有者

6. db_securityadmin

固定数据库角色db_securityadmin的成员可以管理数据库中的安全。这些成员可以进行如下的动作:

运行与安全有关的所有Transact-SQL语句(GRANT、DENY和REVOKE)

运行以下系统过程:sp_addapprole、sp_addrole、sp_addrolemember、sp_approlepassword、sp_changeobjectowner、sp_dropapprole、sp_droprole、sp_droprolemember

7. db_backupoperator

固定数据库角色db_backupoperator的成员可以管理数据库备份的过程。这些成员可以进行如下动作:

运行BACKUP DATABASE和BACKUP LOG语句

用CHECKPOINT语句显式地启动检查点进程

运行如下dbcc命令:dbcc checkalloc、dbcc checkcatalog、dbcc checkdb、dbcc updateusage

8. db_denydatareader和db_denydatawriter

顾名思义,固定数据库角色db_denydatareader的成员对数据库中的数据库对象(表或视图)没有SELECT权限。如果数据库中含有敏感数据并且其他用户不能读取这些数据,那么就可以使用这个角色。

固定数据库角色db_denydatawriter的成员对数据库中的任何数据库对象(表或视图)没有INSERT、UPDATE和DELETE权限。

❹ MySQL 数据库,如何分角色权限建表

角色一直存在各个数据库中,比如 SQL Server、Oracle 等,MySQL 自从版本 8.0 release,引入了角色这个概念。


角色的概念

角色就是一组针对各种数据库权限的集合。比如,把一个角色分配给一个用户,那这个用户就拥有了这个角色包含的所有权限。一个角色可以分配给多个用户,另外一个用户也可以拥有多个角色,两者是多对多的关系。不过 MySQL 角色目前还没有提供类似于其他数据库的系统预分配的角色。比如某些数据库的 db_owner、 db_datareader 、 db_datawriter 等等。那接下来我分几个方面,来示例说明角色的使用以及相关注意事项。

示例 1:一个完整角色的授予步骤

用管理员创建三个角色:db_owner, db_datareader, db_datawriter

  • mysql> create role db_owner,db_datareader,db_datawriter;

  • Query OK, 0 rows affected (0.02 sec)

  • mysql> grant all on ytt_new.* to db_owner;

  • Query OK, 0 rows affected (0.01 sec)

  • mysql> grant select on ytt_new.* to db_datareader;

  • Query OK, 0 rows affected (0.01 sec)

  • mysql> grant insert,delete,update on ytt_new.* to db_datawriter;

  • Query OK, 0 rows affected (0.01 sec)

  • 创建三个普通用户,分别为 ytt1、ytt2、ytt3。mysql> create user ytt1 identified by 'ytt',ytt2 identified by 'ytt',ytt3 identified by 'ytt';Query OK, 0 rows affected (0.01 sec)

  • 分别授予这三个用户对应的角色。
  • -- 授权角色

  • mysql> grant db_owner to ytt1;

  • Query OK, 0 rows affected (0.02 sec)

  • -- 激活角色

  • mysql> set default role db_owner to ytt1;

  • Query OK, 0 rows affected (0.00 sec)

  • mysql> grant db_datareader to ytt2;

  • Query OK, 0 rows affected (0.01 sec)

  • mysql> set default role db_datareader to ytt2;

  • Query OK, 0 rows affected (0.01 sec)

  • mysql> grant db_datawriter to ytt3;

  • Query OK, 0 rows affected (0.01 sec)

  • mysql> set default role db_datawriter to ytt3;

  • Query OK, 0 rows affected (0.01 sec)

  • 以上是角色授予的一套完整步骤。那上面有点非常规的地方是激活角色这个步骤。MySQL 角色在创建之初默认是没有激活的,也就是说创建角色,并且给一个用户特定的角色,这个用户其实并不能直接使用这个角色,除非激活了才可以。
  • 示例 2:一个用户可以拥有多个角色

  • -- 用管理员登录并且创建用户

  • mysql> create user ytt4 identified by 'ytt';

  • Query OK, 0 rows affected (0.00 sec)

  • -- 把之前的三个角色都分配给用户ytt4.

  • mysql> grant db_owner,db_datareader,db_datawriter to ytt4;

  • Query OK, 0 rows affected (0.01 sec)

  • -- 激活用户ytt4的所有角色.

  • mysql> set default role all to ytt4;

  • Query OK, 0 rows affected (0.02 sec)

  • -- ytt4 用户登录

  • root@ytt-pc:/var/lib/mysql# mysql -uytt4 -pytt -P3304 -hytt-pc

  • ...

  • -- 查看当前角色列表

  • mysql> select current_role();

  • +--------------------------------------------------------+

  • | current_role() |

  • +--------------------------------------------------------+

  • | `db_datareader`@`%`,`db_datawriter`@`%`,`db_owner`@`%` |

  • +--------------------------------------------------------+

  • 1 row in set (0.00 sec)

  • -- 简单创建一张表并且插入记录, 检索记录,完了删掉这张表

  • mysql> use ytt_new

  • Database changed

  • mysql> create table t11(id int);

  • Query OK, 0 rows affected (0.05 sec)

  • mysql> insert into t11 values (1);

  • Query OK, 1 row affected (0.02 sec)

  • mysql> select * from t11;

  • +------+

  • | id |

  • +------+

  • | 1 |

  • +------+

  • 1 row in set (0.00 sec)

  • mysql> drop table t11;

  • Query OK, 0 rows affected (0.04 sec)

  • 示例 3:用户在当前 session 里角色互换
  • 其实意思是说,用户连接到 MySQL 服务器后,可以切换当前的角色列表,比如由 db_owner 切换到 db_datareader。

  • -- 还是之前的用户ytt4, 切换到db_datareader

  • mysql> set role db_datareader;

  • Query OK, 0 rows affected (0.00 sec)

  • mysql> select current_role();

  • +---------------------+

  • | current_role() |

  • +---------------------+

  • | `db_datareader`@`%` |

  • +---------------------+

  • 1 row in set (0.00 sec)

  • -- 切换后,没有权限创建表

  • mysql> create table t11(id int);

  • ERROR 1142 (42000): CREATE command denied to user 'ytt4'@'ytt-pc' for table 't11'

  • -- 切换到 db_owner,恢复所有权限。

  • mysql> set role db_owner;

  • Query OK, 0 rows affected (0.00 sec)

  • mysql> create table t11(id int);

  • Query OK, 0 rows affected (0.04 sec)

  • 示例 4:关于角色的两个参数

  • activate_all_roles_on_login:是否在连接 MySQL 服务时自动激活角色mandatory_roles:强制所有用户默认角色
  • -- 用管理员连接MySQL,

  • -- 设置默认激活角色

  • mysql> set global activate_all_roles_on_login=on;

  • Query OK, 0 rows affected (0.00 sec)

  • -- 设置强制给所有用户赋予角色db_datareader

  • mysql> set global mandatory_roles='db_datareader';

  • Query OK, 0 rows affected (0.00 sec)

  • -- 创建用户ytt7.

  • mysql> create user ytt7;

  • Query OK, 0 rows affected (0.01 sec)

  • -- 用 ytt7登录数据库

  • root@ytt-pc:/var/lib/mysql# mysql -uytt7 -P3304 -hytt-pc

  • ...

  • mysql> show grants;

  • +-------------------------------------------+

  • | Grants for ytt7@% |

  • +-------------------------------------------+

  • | GRANT USAGE ON *.* TO `ytt7`@`%` |

  • | GRANT SELECT ON `ytt_new`.* TO `ytt7`@`%` |

  • | GRANT `db_datareader`@`%` TO `ytt7`@`%` |

  • +-------------------------------------------+

  • 3 rows in set (0.00 sec)

  • 示例 5 :create role 和 create user 都有创建角色权限,两者有啥区别?

  • 以下分别创建两个用户 ytt8、ytt9,一个给 create role,一个给 create user 权限。
  • -- 管理员登录,创建用户ytt8,ytt9.

  • mysql> create user ytt8,ytt9;

  • Query OK, 0 rows affected (0.01 sec)

  • mysql> grant create role on *.* to ytt8;

  • Query OK, 0 rows affected (0.02 sec)

  • mysql> grant create user on *.* to ytt9;

  • Query OK, 0 rows affected (0.01 sec)

  • -- 用ytt8 登录,

  • root@ytt-pc:/var/lib/mysql# mysql -uytt8 -P3304 -hytt-pc

  • ...

  • mysql> create role db_test;

  • Query OK, 0 rows affected (0.02 sec)

  • -- 可以创建角色,但是不能创建用户

  • mysql> create user ytt10;

  • ERROR 1227 (42000): Access denied; you need (at least one of) the CREATE USER privilege(s) for this operation

  • mysql> q

  • Bye

  • -- 用ytt9 登录

  • root@ytt-pc:/var/lib/mysql# mysql -uytt9 -P3304 -hytt-pc

  • ...

  • -- 角色和用户都能创建

  • mysql> create role db_test2;

  • Query OK, 0 rows affected (0.02 sec)

  • mysql> create user ytt10;

  • Query OK, 0 rows affected (0.01 sec)

  • mysql> q

  • Bye

  • 那这里其实看到 create user 包含了 create role,create user 即可以创建用户,也可以创建角色。
  • 示例 6:MySQL 用户也可以当角色来用

  • -- 用管理员登录,创建用户ytt11,ytt12.

  • mysql> create user ytt11,ytt12;

  • Query OK, 0 rows affected (0.01 sec)

  • mysql> grant select on ytt_new.* to ytt11;

  • Query OK, 0 rows affected (0.01 sec)

  • -- 把ytt11普通用户的权限授予给ytt12

  • mysql> grant ytt11 to ytt12;

  • Query OK, 0 rows affected (0.01 sec)

  • -- 来查看 ytt12的权限,可以看到拥有了ytt11的权限

  • mysql> show grants for ytt12;

  • +-----------------------------------+

  • | Grants for ytt12@% |

  • +-----------------------------------+

  • | GRANT USAGE ON *.* TO `ytt12`@`%` |

  • | GRANT `ytt11`@`%` TO `ytt12`@`%` |

  • +-----------------------------------+

  • 2 rows in set (0.00 sec)

  • -- 在细化点,看看ytt12拥有哪些具体的权限

  • mysql> show grants for ytt12 using ytt11;

  • +--------------------------------------------+

  • | Grants for ytt12@% |

  • +--------------------------------------------+

  • | GRANT USAGE ON *.* TO `ytt12`@`%` |

  • | GRANT SELECT ON `ytt_new`.* TO `ytt12`@`%` |

  • | GRANT `ytt11`@`%` TO `ytt12`@`%` |

  • +--------------------------------------------+

  • 3 rows in set (0.00 sec)

  • 示例 7:角色的撤销

  • 角色撤销和之前权限撤销类似。要么 revoke,要么删除角色,那这个角色会从所有拥有它的用户上移除。
  • -- 用管理员登录,移除ytt2的角色

  • mysql> revoke db_datareader from ytt2;

  • Query OK, 0 rows affected (0.01 sec)

  • -- 删除所有角色

  • mysql> drop role db_owner,db_datareader,db_datawriter;

  • Query OK, 0 rows affected (0.01 sec)

  • -- 对应的角色也从ytt1上移除掉了

  • mysql> show grants for ytt1;

  • +----------------------------------+

  • | Grants for ytt1@% |

  • +----------------------------------+

  • | GRANT USAGE ON *.* TO `ytt1`@`%` |

  • +----------------------------------+

  • 1 row in set (0.00 sec)

至此,我分了 7 个目录说明了角色在各个方面的使用以及注意事项,希望对大家有帮助。

❺ 如何建立角色

进入游戏后,可以看见一个“选择人物”画面,选中这个键上面的空挡按“创建新人物”后会弹出一个窗口,您可以在这里输入喜欢的名字,还可以选择喜欢的角色、头发颜色,并分配个人的初始属性。
一切选定后点击"确定"就可以了。如果出现重名现象,系统会提示重新选择名称的。当您建立人物成功后,双击该人物或点击开始按钮就可以进入游戏画面了。
人物角色是基于目标、行为、观点或由此产生的细分用户群,不同的细分用户群有不同的属性,我一般会将用两到三个属性来区分最重要的差异。
可是这并不容易,我们总是有好多话要说,此时需要做减法,强迫自己去掉次要属性。

❻ sql server中利用sql语句如何创建角色和用户

, 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数据库角色

◆没有适用的 Microsoft Windows NT�0�3 4.0 或 Windows�0�3 2000 组。
◆没有管理 Windows NT 4.0 或 Windows 2000 用户帐户的权限。
说明 请避免角色的深层嵌套以免影响性能。
例如,一个公司可能成立慈善活动委员会,其中包括来自不同部门,来自组织中各种不同级别的职员。这些职员需要访问数据库中特殊的项目表。没有只包括这些职员的现有 Windows NT 4.0 或 Windows 2000 组,而且没有其它理由在 Windows NT 4.0 或 Windows 2000 中创建这样一个组。可以为此项目创建一个自定义 SQL Server 数据库角色 CharityEvent,并将个别的 Windows NT 和 Windows 2000 用户添加到此数据库角色。当应用权限后,数据库角色中的用户便获得对表的访问权限。其它数据库活动的权限不受影响,只有 CharityEvent 用户可以使用该项目表。
SQL Server 角色存在于一个数据库中,不能跨多个数据库。
使用数据库角色的好处包括:
◆对于任何用户,都可以随时让多个数据库角色处于活动状态。
◆如果所有用户、组和角色都在当前数据库中,则 SQL Server 角色可以包含 Windows NT 4.0 或 Windows 2000 组和用户,以及 SQL Server 用户和其它角色。
◆在同一数据库中,一个用户可属于多个角色。
◆提供了可伸缩模型以便在数据库中设置正确的安全级别。
说明 数据库角色要么在创建角色时由明确指定为所有者的用户所拥有,要么在未指定所有者时为创建角色的用户所拥有。角色的所有者决定可以在角色中添加或删除谁。

❽ mysql怎样建立角色数据库和怎样为用户分配角色

角色一个表,用户一个表,在建一个表3个字段id,角色表id,用户表id,

用户去选择什么样的角色,,后台做一个创建角色的功能,更用户来匹配

❾ Postgresql数据库如何新建登录用户

我们使用Postgresql数据库的时候,默认都是用postgres用户进行数据操作。但是有时为了数据安全,我们会另外建一些账号给相关的工作人员使用。那么Postgresql数据库中如何新建登录用户呢?下面我给大家分享一下。

工具/材料

pgAdmin4

  • 01

    首先打开Postgresql的管理工具pgAdmin4,接着双击服务器名称,如下图所示

  • 02

    在弹出的Connect to Server界面中输入postgres用户的密码,然后点击OK按钮,如下图所示

  • 03

    进入到数据库以后右键单击"登录/组角色"选项,选择Create下面的Login/Group Role选项,如下图所示

  • 04

    接下来会弹出创建登录用户的界面,我们先给用户起一个名字,尽量是英文,如下图所示

  • 05

    然后切换到Definition页卡,给登录用户设置一个登录密码,如下图所示,注意Connection limit要设置为-1

  • 06

    接着切换到Privileges界面,这里需要给登录用户设置一下操作权限,大家可以根据自己的需要设置即可,如下图所示

  • 07

    接下来切换到Membership页卡,给登录用户设置一个角色,这里我直接把管理员的角色给它了,如下图所示

  • 08

    上述设置完毕以后回到数据库主界面,我们就可以看到"登录/组角色"下面就已经有我们新建的登录用户了,如下图所示

  • 09

    最后我们断开当前的连接,用新建的用户进行登录,如果登录正常的话则代表一切设置成功,如下图所示

❿ sybase数据库中怎样创建角色并授予权限

这个问题别人已经问过,且我已经回答了,你可以参考一下:

sybase数据库的用户,包含两个层面:一个是登陆号,另一个是具体DB的用户,我们登陆时,使用的是登录号,但是这个登录号可以操作哪些DB及操作权限则取决于数据库用户。一般情况下,我们可以采取相同的名字来表示登录号和数据库用户。

首先创建一个登陆号:
sp_addlogin loginame, passwd
loginame 登录名
passwd 密码
全部语法(一般不用到)为:
sp_addlogin loginame, passwd [, defdb]
[, deflanguage ] [, fullname ] [, passwdexp ]
[, minpwdlen ] [, maxfailedlogins ]

然后创建用户:
sp_adser loginame
这样创建当前数据库的用户,且用户名和登陆名是一样的。
全部语法为:
[dbname..]sp_adser loginame [, username[, grpname]]

最后分配权限:
grant all | select,insert,delete,update
on table_name | view_name | stored_procere_name
to username

grant all | create database,create
default,create procere,create rule,create table,create view,set proxy,set session authorization
to username

例,假如当前DB为:DB001:
sp_addlogin 'test001','password001'
go
sp_adser 'test001', 'user001'
go
grant create table to user001
go

创建了一个test001的登录名,之后为之创建一个当前数据库的用户,使这个登录名可以操作当前数据库。之后分配了创建表的权限给user001。

这个时候你就可以使用用户名'test001'和密码'password001'登陆了,并且可以在DB001中创建表了。同时由于sp_adser 的时候没有指定grpname参数,那么默认是public用户组,这个组里的用户默认即开通了select/delete/update/insert的权限。

如果你希望去掉一些权限,请使用revoke命令,其语法了grant完全相同,你只需要将grant换成revoke即可,例:
revoke select on address to user001
禁止user001查看address表。

热点内容
ftp服务器攻击 发布:2025-07-10 10:28:46 浏览:140
提高studio编译速度 发布:2025-07-10 10:28:46 浏览:414
Char在sql 发布:2025-07-10 10:19:19 浏览:782
请密码不叫什么说话 发布:2025-07-10 10:06:22 浏览:115
苹果应用怎么设置密码 发布:2025-07-10 10:04:00 浏览:838
雪国脚本 发布:2025-07-10 10:04:00 浏览:938
编程让 发布:2025-07-10 09:48:13 浏览:359
数据库逻辑存储结构 发布:2025-07-10 09:26:56 浏览:920
密码编译找规律 发布:2025-07-10 09:18:10 浏览:512
电影视频缓存后 发布:2025-07-10 09:16:48 浏览:894