Custom post type definition includes a capability type parameter. If capability type is omitted, WordPress uses a default value ‘post’, the same as for the WP built-in post type ‘posts’. All such custom post types are protected by the same user capabilities set as WordPress uses for the ‘Posts’: edit_posts, delete_posts, etc.

If you use some plugin to define custom post type you can input a unique capability type there.

User Role Editor Pro has an option which forces all custom post type to use own capabilities set (Settings->User Role Editor->Additional Modules). Related capabilities are added to the administrator role automatically, but should be granted to other roles manually.